· 整数
正数原、反、补相同;负数最高位为符号位;反码为符号位不变,其余位取反;补码为反码加1
负数补码除符号位外其余按位取反,再+1,得到原码。这个过程与原码得到补码一样
大小端
大端存储:数据的低位存放在高地址中;如低8位存放的地址比高8位存放的地址高,即高8位先存再存低8位。
小端存储:数据的低位存放在内存地址的低位。
可以通过如下代码判断自己的电脑的存储模式
#include "stdio.h"
int check(){
int a = 1;
char *p = (char *)&a; //把a的地址强制转换成char *
if(*p == 1){
return 1;
} else{
return 0;
}
}
int main(){
int a = 1;
if(check()){
printf("小端\n");
} else{
printf("大端\n");
}
return 0;
}
·浮点数
浮点数在内存中的存储形式按国际标准IEEE754来存放
十进制5.5
二进制:101.1(2的-1次方)
754标准:(-1)^0 * 1.011 * 2^2
S=0 M=011 E=2
E的存储
E的取出
故上述5.5在内存中的存储形式为:
即0 10000001 01100000000000000000000->
即01000000 10110000 00000000 00000000