数据在内存中以二进制的形式存储。整数二进制有三种表现形式:原码,反码,补码。
正整数:原码,反码,补码都相等。
负整数:按照数据的数值直接写出的二进制序列为原码,反码等于原码符号位不变其他位按位取反,补码等于反码加1。
整数在内存中以补码的形式存储。
小端字节序:把数据的低位字节序的内容存放在低地址处,高位字节序的内容存放在高地址处。
大端字节序:把数据的低位字节序的内容存放在高地址处,高位字节序的内容存放在低地址处。
任意一个二进制浮点数可以表示成以下形式:
(-1)^S*M*2^E
(-1)^S表示符号位,当S=0时为正数,S=1时为负数。M表示有效数字,大于等于1,小于2。2^E表示指数位。
对于32位浮点数,最高的1位是符号位S,接着的8位是指数E,剩下的23位是有效数字M。
对于64位浮点数,最高的1位是符号位S,接着的11位是指数E,剩下的52位是有效数字M。
E是一个无符号整数,所以存入内存时E的真实值须加一个中位数,8位是127,11位是1023。
计算机内部保存M时,会把第一位的1舍去,保存后面的部分,读取时会再添加上。