C语言 一个32位数怎么转化成四个八位数

例如:int data = 0x11223344; char b[4];
想让 b[0] = 44; b[1] = 33; b[2] = 22; b[3] = 11;

为什么b[0] = data & 0xff; b[1] = (data >> 2) & 0xff; b[2] = (data >> 4) & 0xff; b[3] = (data >> 6) &0xff
不行

第1个回答  2011-02-28
首先不能用int 型
用 unsigned long date = 0x11223344
这样试下:
b[0] = date % 256;

date = date >> 8;

b[1] = date % 256;

date = date >> 8;

b[2] = date % 256;

date = date >> 8;

b[3] = date % 256;
第2个回答  2011-03-05


把它和二进制的 00010000按位与操作。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网