数据类型

数据类型

C语言数据类型

image-20240712101911010

学习数据类型三要素:宽度、格式、作用范围(作用域)

整数类型

char 8bits 1字节
short 16bits 2字节
int 32bits 4字节
long 32bits 4字节

在下图中我们可以看到

char即是byte,short即word,int即dword(32位系统)

image-20240712103508128

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

image-20240712105202908

  • 整数类型分为有符号型和无符号型

  • 在内存中时,有符号和无符号型数据0xff在内存中的表示是一样的

    但是在使用时,会根据自己定义的类型来输出

  • 做运算时需要注意有无符号

  • 特别的是,当有符号数与无符号数比较时,会采用有符号比较的jcc

浮点类型

计算机存储小数与存储整数的方式不同,遵守IEEE规范

float类型

image-20211203111505165

double类型

image-20211203111450602

转换方式:

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

验证一下

image-20240712120125932

本文作者:yee-l

本文链接:https://www.cnblogs.com/yee-l/p/18298067

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   yee-l  阅读(7)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起