0-9,a-zA-Z在内存中以怎样的格式存储呀
0-9,a-zA-Z在内存中以怎样的格式存储呀
如int a=100;
int *b=a;
变量a的地址有什么用?
100在内存中,实际存储的不是100吧?应该是0和1组成的吧?
访问a时,实际就是访问某块内在中存储的值是吧?
初学者,多多关照!
[解决办法]
嗯,牵涉到大尾小尾机,还有补码~
[解决办法]
首先他们在内存中存储的是asc码,例如0的asc码是48转换成16进制30H。
30H的二进制是00110000,在内存中会占用8位。
[解决办法]
int型变量在内存中占用4字节,所以100(考虑符号位)在内存中是实际形式应该为
00000000 00000000 00000000 01100100,但由于通常查看内存均是按照16进制规范,故100经常表示为00 00 00 64h。
变量a的地址最大用处即使让指针对其进行寻址,也就是LZ代码中b的作用(不过正确的语法应该是int *b=&a;),此时b的内存空间存放的值即为a变量的地址,在型如*b=10;这样的赋值中,程序即通过该地址寻址至a并进行数值复制。
[解决办法]
当存放数值为负数时,计算机通常以补码形式表现数值。
[解决办法]
字宽即使指以字节为单位计算的变量长度,如int型数值,其字宽即为4。
[解决办法]
C++ 语言规定了某种内部类型必须能存储最大值和最小值。 所以跟机器的硬件 和 所采用的存储方式有关。 例如 采用BCD码存储 和采用 16进存储 结果是不一样的