bman's it blog

Do our coding

位级操作小记

11100 << 2 == 28 * 2 * 2
11100 >> 2 == 28 / 2 / 2
bit to byte == bit >> 3
x mod 64 == x & 0x3F

从本机字次序转换成小端
unsigned int i, j;
for (i = 0, j = 0; j < len; i++, j += 4) {
 output[j] = (byte)(input[i] & 0xff);
 output[j+1] = (byte)((input[i] >> 8) & 0xff);
 output[j+2] = (byte)((input[i] >> 16) & 0xff);
 output[j+3] = (byte)((input[i] >> 24) & 0xff);
}

从小端转换成本机字次序
unsigned int i, j;
for (i = 0, j = 0; j < len; i++, j += 4)
 output[i] = ((uint32)input[j]) | (((uint32)input[j+1]) << 8) |
  (((uint32)input[j+2]) << 16) | (((uint32)input[j+3]) << 24);

posted on 2008-02-22 18:14 bman 阅读(130) 评论(0)  编辑 收藏 引用 所属分类: 笔记

只有注册用户登录后才能发表评论。

导航

<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

统计

常用链接

留言簿(2)

随笔分类

随笔档案

最新随笔

搜索

积分与排名

最新随笔

最新评论

阅读排行榜

评论排行榜