·上一文章:八位微控制器的代码优化技巧
·下一文章:多处理器系统中Nios II软核处理器启动方案的设计
二进制数据很少直接用在Visual C++++程序中,因为C++通常被视作高级语言。然而,对于要在两类不同设备间传输信息的通信网络而言,二进制数或十六进制数的传输过程比十进制数更为简单。
在某些应用场合,计算机用户接口会引导用户通过键盘输入十六进制数。但因为这个十六进制数要被送至嵌入式系统,所以离开PC之前它必须被转换成真正意义上的数。此时,用户输入的是十六进制形式的字符串。然而,Visual C++ 6.0不提供将十六进制字符串转换成真正意义的(用0、1表示)十六进制或二进制数的转换函数。
图中给出了可实现这种函数的程序的流程图。首先,需将输入的十六进制数转换成二进制数。因为一个十六进制字符代表4位二进制数,所以最好采用" switch case "结构将单个的十六进制字符转换 4位二进制数。函数convert_hex2bin() 可完成这一转换。
在将整个十六进制字符串转换成二进制数后,接下来必须将每4位二进制数转换成相应的十进制值。函数 convert_sbin2int()返回它的整数值 。这样,通过带有VC++ IDE的子函数subfunction atoi(),二进制字符串已被转换成十进制数。最后,将所有小的整数相加得到最终结果。这一结果可被送至嵌入式系统或者以十进制形式显示在屏幕上。