C——数据类型及其存储方式

本文详细介绍了C语言中的数据类型,包括整型、实型和字符型数据的存储方式。整型数据以补码形式存储,无符号数据没有符号位;实型数据遵循IEEE—754标准,分为指数和尾数两部分;字符型数据根据有符号无符号占用不同存储空间,并以ASCII码的二进制形式表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、数据类型
在这里插入图片描述

 注释:另外还有复数浮点类型:float_Complex、double_Complex、long double_Complex*

二、数据存储

  • 数据范围
    在这里插入图片描述

    注:long表示长整型,为long int的缩写,长度至少32位,而64位类Unix系统为64位。(一般不建议使用,表示长整型可直接用longlong:-2^63 ~(2^63 -1))
    
  • 存储形式

  • [ 整型数据]:

    整型数据无论正负都是以二进制数补码的形式存储的。对于有符号的数据,则在存储单元的最高位为符号位,1 表示负数,0 表示正数;对于无符号的数据,则没有符号位,所有的存储单元均为数据位。
    例如,十进制数13的补码就是其原码1101,所以13在内存中的存储形式为(以两个字节为例)0000 0000 0000 1101。十进制数-13的补码是1111 1111 1111 0011,即其在内存中的存储形式。
    在这里插入图片描述

    注:求补码的的方法
    在计算机中整数有原码(该数二进制形式),反码(除最高位的符号位不变外,其它位取反)和补码(正数的补码就是原码,负数的补码位除最高位符号位不改变外,其他位在原码的基础上取反再在最末尾加 1),补码的作用就是可以将减法转化为加法,简化硬件电路设计。 
    
  • [ 实型数据]:
    实型数据也称为浮点型数据。实型数据均为有符号数据,没有无符号数据
    目前C/C++语言采用IEEE—754标准来存储实型数据,它在内存中是以规范化的指数形式(小数部分的小数点前只允许一位有效数字)存放的。系统把一个实型数据分成小数部分和指数部分,分别存放,例如-8.25(-1000.01=-1.00001*2^3),存放为符号位为1(表示负数),指数位为(3+127)=130=(10000010),尾数位为m-1=(00001)(尾数位第1个数都为1,为了节省内存使用,通常把1省略)。
    在这里插入图片描述

    注:一个浮点数时需要给出指数,这个指数用整数形式表示,这个整数叫做阶码
    

float:30~23位表示指数位, 实际上指数位表示的实际指数应该是无符号位数减去127
例如0000 0000 表示0 - 127=-127;换句话説,内存中储存的是指数 e + 127 后的移位数。
double:内存中储存的是指数 e +1023后的移位数。

  • [字符型数据]:
    字符型数据分为有符号和无符号两种,在内存中一个字符型数据占用一个字节,一ASCII码的二进制形式存放的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值