数据类型
数据类型
C语言数据类型

学习数据类型三要素:宽度、格式、作用范围(作用域)
整数类型
| char | 8bits | 1字节 |
|---|---|---|
| short | 16bits | 2字节 |
| int | 32bits | 4字节 |
| long | 32bits | 4字节 |
在下图中我们可以看到
char即是byte,short即word,int即dword(32位系统)

当数据的长度超过所给类型的长度时,会从低位开始储存,多余的位数会直接舍弃

-
整数类型分为有符号型和无符号型
-
在内存中时,有符号和无符号型数据0xff在内存中的表示是一样的
但是在使用时,会根据自己定义的类型来输出
-
做运算时需要注意有无符号
-
特别的是,当有符号数与无符号数比较时,会采用有符号比较的jcc
浮点类型
计算机存储小数与存储整数的方式不同,遵守IEEE规范
float类型

double类型

转换方式:
1.先把实数部分(取绝对值)转换为二进制(除2取余法)
2.小数部分乘以二,直到小数部分变为0(每次操作乘2取整数部分),如果变不成0进入循环,则到最大精度停止。
3.将二进制格式实数的小数点左移或右移n位,直到小数点左侧只有一个有效数字(1)
然后使用科学计数法表示
4.把小数点后取23位放入0-22的内存
5.31处存符号
6.指数部分的8位数,第一位数看小数点移动方向,左移就为1,右移为0,后面7位填上指数的补码形式-1(无视符号位)
以-12.5为例
绝对值转二进制为:1100.1
变为科学记数法形式1.1001*2³
0 00000000 00000000000000000000000
后面23位写小数部分,第一位写符号
1 00000000 10010000000000000000000
左移,指数部分第一位写1,后七位写指数的补码-1
1 10000010 10010000000000000000000
重新分配位数
1100 0001 0100 1000 0000 0000 0000 0000
C1480000
验证一下


浙公网安备 33010602011771号