一个有关内存的基本问题~~~~~
如果int i=0;
那么编译器会从&i~&i+3划分四个内存单位给变量i,后面对变量i的操作将会映射到&i~&i+3这个四个内存单位里数据的操作,32位一个内存单位32个字节,然而在存储数据的时候只用了低8位,貌似存储汇编指令时内存也是用低8位,想问下剩余的24位是用来做什么的,不会只存储unsigned或signed的信息吧?
[解决办法]
信息的基本单位是bit
[解决办法]
如果是signed int ,最高位是符号位
其他的应该是0,
字节对齐的时候这些空间也会闲着,以保证速度
这是我的理解,抛砖引玉。。。
[解决办法]
建议lz看看汇编方面的书,一看就明白了
[解决办法]
32位一个内存单位32个字节,然而在存储数据的时候只用了低8位
----------------------------------------------------
1.32位的CPU。它也是一个地址一个字节。int i=0;分配给了i四个字节也就是32位。而不是32个字节。
2。存储的时候不是只用了低8位。。。而是用了32位。00000000 00000000 00000000 00000000
32位比16位的优势在哪?64位比32位的优势在哪? 显然的...
[解决办法]
是你自己让它输出8位的啊...指针在你的控制下移动输出..你还怪它..
[解决办法]