gdb调试或者打印地址时候为啥只有48位?

例如:0x7fffd2f48c10
根本原因:当前的x86_64处理器硬件限制所致。因为目前面世的x86_64处理器的地址线只有48条,硬件要求传入的地址的48到63位必须与47位相同
因为这个相同的原因也就是说剩下的16位要那么是 0x0000 要么是0xffff 也就是说
情况1(剩下的16位都是0):
BIN二进制64位是 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
                             0000 0000 0000 0000 0111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111
   16进制   是  0x0000000000000000 到 
                       0x00007fffffffffff
   去掉16位  也就是 0x000000000000
                                0x7fffffffffff
情况2(剩下的16位都是1):
BIN二进制64位是 1111 1111 1111 1111 1000 0000 0000 0000 0000 00

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值