C/C++数据类型

C/C++数据类型

一、分类表格

C语言数据类型 基本类型 整数类型
浮点类型
构造类型 数组类型
结构体类型
共用体(联合)类型
指针类型
空类型(void)

二、数据类型三要素

  1. 存储数据的宽度
  2. 存储数据的格式
  3. 作用范围(作用域)

三、整数类型

类型 宽度 字节数
char 8bit 1字节
short 16bit 2字节
int 32bit 4字节
long 32bit 4字节

数据类型在反汇编中的表示:

整数类型分为有符号(signed)和无符号(unsigned)

四、浮点类型

类型 宽度 字节数
float 32bit 4字节
double 64bit 8字节

float类型存储方式


double类型存储方式


浮点类型转化为内存存储格式的方法:

  1. 先将这个实数的绝对值化为二进制格式

  2. 将这个二进制格式实数的小数点左移或右移n位,直到小数点移动到第一个有效数字的右边

  3. 从小数点右边第一位开始数出二十三位数字放入第22到第0

  4. 如果实数是正的,则在第31位放入0,否则放入1

  5. 如果n是左移得到的,说明指数是正的,第30位放入1。如果n是右移得到的或n=0,则第30位放入0

  6. 如果n是左移得到的,则将n减去1后化为二进制,并在左边加0补足七位,放入第29到第23

    如果n是右移得到的或n=0,则将n化为二进制后在左边加0补足七位,再各位求反,再放入第29到第23
    ps:中间8位可以用127+n(左移为正右移为负)得到
    1.25的转换步骤:

  7. 二进制格式:1.01

  8. 0位(1.25=1.25*2^0

  9. 1.25=0 0 1111111 01000000000000000000000=3FA00000

PS:二进制表示小数并不是精确的,会出现无限循环的情况,只得取前n位近似

英文与中文字符存储略

posted @ 2021-08-18 15:46  Ybitsec  阅读(101)  评论(0编辑  收藏  举报