数据的储存

文章详细介绍了C语言中的数据类型,包括整形、浮点型、构造类型、指针类型和空类型,并深入讲解了整形在内存中以补码形式存储的原理,以及大端字节序和小端字节序的概念。同时,文章还阐述了浮点数的存储规则,包括其二进制表示形式和可能存在的精度误差。
摘要由CSDN通过智能技术生成

1.数据类型的基本归类

2.整形在内存中的储存

3.大端字节序存储和小端字节序存储

4.浮点数的存储规则

   在c语言中数据基本分为整形,浮点型,构造类型,指针类型,空类型。

   整形包含char(字符存储和表示时本质上使用ASCLL值,ASCLL是整数,字符类型也归类到整         形),short,int,long。每个类型还可以细分为两类unsigned和signed。

   浮点型包含float,double。

   构造类型包含数组类型,结构体类型(struct),枚举类型(enum),联合类型(union)。

   指针类型包括int*,char*,float*,void*等。

   空类型指以void为前缀的,通常用于函数的返回类型,函数的参数,指针类型。

整形在内存中的储存

  在内存中存储的都是二进制数据,而整形的二进制表示形式有:原码,反码,补码,并且存储的都是补码。

  将数分为正数与负数来区别三码:

  1.正数。原码,反码,补码相同,都是这个数的二进制形式在加上n(与该类型的bit差)个0,第一位是符号位正为,负为1。例:若这个数是int类型的5,他的二进制形式是101,原码为00000000000000000000000000000101。

   2.负数。原码与正数相同; 反码是符号位不变,其他位按位取反;补码是反码+1;例:若数为int类型的-5,原码:10000000000000000000000000000101;反码:11111111111111111111111111111010;补码:00000000000000000000000000000110。

大端字节序存储:把一个数据的低位字节数据存放在高地址,高位字节的数据存放在低地址。

小端字节序存储:把一个数据的低位字节数据存放在低地址,高位字节的数据存放在高地址。

例:int a=0x11(高位字节)223344(低位字节)

(低地址)                                                                                        (高地址)

               11223344              44332211

左边为大端存储,右边为小端存储。

浮点数的存储规则

    任意一个二进制浮点数都可以写成以下形式:(-1)^s*M*2^E。其中(-1)^s表示符号位,s=0为正,s=1为负。M表示有效数字,大于等于1,小于2;2^E表示指数位。

例:(float)5.5=>(二进制形式)1(1*2^2)0(0*2^1)1(1*2^0).1(1*2^-1)=>1.011*2^2(1.011=M,2^2=2^E,E为101.1=>1.011移动的位数)=>(在内存中的形式)0(符号位)10000001(若为float,为E+127的二进制形式;若为double,为E+1023的二进制形式)011(M-1)00000000000000000000。

    特别注意,有一些浮点数是不能精确保存的,是有误差的,如5.3。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sakura&NANA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值