16进制的问题
RowNum是一个4位的10进制数,我想把它以16进制的方式储存在一个 array里面
- C/C++ code
char Command[4];sscanf(RowNum,"%2x%2x",&Command[0],&Command[1]);//会提示说无法把int转换成charCommand[0]=RowNum&0x0C;Command[1]=RowNum&0x03;如果这样 Command[1]的数值时正确的,Command[0]的数值却不对。还有什么更好的方法吗 还请各位大神指点 谢谢
[解决办法]
计算机里都是2进制
你不用自己去做转换
想干什么直接招呼就好了
[解决办法]
不要&?
[解决办法]
sscanf的函数原型是Int sscanf( const char *, const char *, ...);
也就是说第一个参数必须是char*,不能是int
还有就是没必要转换成16进制存储,因为计算机本来就是按照二进制存的,等到输出时再按16进制输出就好了
[解决办法]
不好意识,没有看太明白LZ的意思
如果是把这个4位的10进制数,分高2位和低2位分别存储到两个字符数组的话可以:
- C/C++ code
#include <stdio.h>int main(){ int RowNum = 0xAABB; char Command[2][3]; sprintf(Command[0], "%X", RowNum >> 8); sprintf(Command[1], "%X", RowNum & 0xFF); printf("%s %s", Command[0], Command[1]); return 0;}
[解决办法]
移位……