int i占一个字的长度(16或32位),char c占一字节长度(8位)。scanf("%d", &c);其中%d说明是以int类型读进来,&c说明放到c位置。回头看看c位置一个字节装不下一个字,所以会覆盖掉i的低端部分。i是0到5,也就是
00000000,00000000到00000000,00000101高端部分本来就是0。
在RAM中,位地址20H是字节地址24H的最低位,字节地址20H有8个位地址:从00H-07H。
在用汇编去编程的时候,需要注意 *** 作的地址是位地址还是字节地址,把数据存放在含有位地址的字节地址中时,可以在程序中去改变这个数据的某一位,字节地址中可以存放8个位变量。
2个字节short int 高低位转化:
short int y=0x7f21;
y = ( (y & 0xff00) >> 8) | ( (y & 0x00ff ) << 8);
printf("%#x",y);
-------------------------------
也可以利用 union
union B2
{
short int i;
unsigned char c[2];
// 。。。任意两字节类型
} ;
union B2 x;
unsigned char tmp;
xi=0x1234;
tmp = xc[0]; xc[0]=xc[1];xc[1]=tmp;
// 也可以用上面的位运算方法交换高低端
printf("%#x\n",xi);
// union 方法特别适合4字节8字节 大端小端码的转换 *** 作。
以上就是关于c语言高低字节全部的内容,包括:c语言高低字节、fpga ram的高低字节、c语言实现2个字节的高低位转化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)