数据类型
数据类型
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
验证一下
本文作者:yee-l
本文链接:https://www.cnblogs.com/yee-l/p/18298067
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步