24小时热门版块排行榜    

查看: 332  |  回复: 1

ZHANGTao6221

银虫 (正式写手)

[求助] 数据结构对齐问题

(1)An n-byte aligned address would have log2(n) least-significant zeros when expressed in binary.
这是什么意思
(2) to see if a is aligned to a word boundary
int a
if(a&0x2) then a is aligned to a word boundary
为什么这样,请解释,谢谢
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mze04532

金虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
计算机中内存空间都是按照byte划分的,例如:
char a;//存储a的地址(&a)为0x00000001是1字节对齐的
char b;//存储b的地址(&b)为0x00000002是2字节对齐的
n字节对齐的地址只能是n的整数倍,因此地址表示为二进制低位至少有log2(n)个零
至于你举的例子:
word = 2bytes
因此a的地址是否为2字节对齐需要: (a的地址)&0x2>0
2楼2012-01-16 23:54:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ZHANGTao6221 的主题更新
信息提示
请填处理意见