c语言基本类型在内存中的存储方式

浮点数

float

符号位+指数位+尾数位
第一位8位23位

double

符号位+指数位+尾数位
第一位11位52位

整数

整数在内存中是以补码的形式存储

正整数

原码=反码=补码

负整数

原码即为原码
反码=原码符号为不变,其余取反(注:第一位为符号位)
补码=反码+1

2019年4月3日更新
原码范围:

  • 整数:(1111…1) $-(2^n-1) \leq x \leq 2^n-1$ (01111…1)
  • 小数:(1.111…1) $-(1-2^n) \leq x \leq 1-2^{-n}$ (0.111…1)