0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数据的表现形式与运算

jf_B3xDfZry 来源:C语言学习联盟 作者:C语言学习联盟 2022-10-12 11:45 次阅读

1、介绍数据

在定义变量时需要指定变量的类型。常量也是区分类型的。因为数据都是存放在内存中的单元中的,它 是具体存在的,而存储单元是有限制大小字节的,每一个存储单元存放数据的范围是有限的。所以必须对数据分配储存单元的安排,包括储存单元的长度(占用字节数)以及数据存储的形式,不同类型的存储。也是为了方便编程人员对数据进行操作,不然一堆数据放下来,都不知道哪个是哪个,这样分类了之后大大提升了编程效率。

4b112a04-494c-11ed-a3b6-dac502259ad0.png

2、 整型类型

基本整型 int :

编译系统一般会分配2个或4个字节(具体是看编译环境),1个字节(8个二进位),整数是以补码的形式存放在储存单元中的。如 5:二进制是101;如果用两个字节存放 正数的补码和源码都是:0000 0000 0000 0101

负5则是要先求出源码,然后再按位取反,再加1 才是负数的补码 如

(源码)0000 0000 0000 0101

(按位取反)1111 1111 1111 1010 (负数补码)1111 1111 1111 1011

再存放整数的存储单元中,最左边(首位)一位是用来表示符号的,0表示正数,1表示负数

现在的编译环境一般都是分配的是4个字节(32位),范围是-2^31到2^31-1 即 -214 748 3648到-214 748 3647

短整型 short int :

短整型一般都是分配两个字节存储方式与int相同,系统一般是分配2个字节(16位),数值能表示的范围是-32768-32767(比int少)

长整型 long int :

系统会分配4个字节(32位),那么长整型所能表示的数字范围就是-2^63----2^63-1了。与int不相同的是int 至少有2个字节以上,long至少有4个字节以上,并且sizeof(int )<=sizeof(long int)。

有些编译环境的int只是两个字节而已

双长整型 long long int:

系统会分配8个字节(64位),那么长整型所能表示的数字范围就是-2^63----2^63-1了。(比长整型长得多)

注* 当然上面所说的 在64位系统下,而且还是要看具体的编译环境,如果在32位的机子或者比较古老编译环境的上面,数值能表示情况和分配字节会会有所不同。

unsigned(无符号类型)

在整数中,有 有符号和无符号之称,一般默认都是有符号的,在变量定义前加上,unsigned 关键字 ,就可将整型数据转换为无符号类型数据,也就是数学中的绝对值数字。一般默认初始化都是有符号的。

实型数据不能加signed(有符号)或unsiged(无符号)修饰符。

由于无符号数据最高位不再用来表示符号,而用来表示数字,所以无符号的存储会比有符号的存储范围扩大一倍。即65535位。如-1在两字节中存放的补码形式是 1111 1111 1111 1111 最开始的一位数字就表示的符号位 ,数值就只有2^15位。但是如果它加上unsigned无符号,那么第一位将不再代表符号,所以数值也就相应增加到2^16位了。

字符型 char:

字符数据在内存中的储存是:每个字符变量被分配一个字节的空间,所以一个单引号只能放一个字符,字符值是以ASCII码形式存放在存储单元中的。字符可以是任意的字符,但数字被定义成字符后就不能参与数值运算了 如 ‘ 5 ‘ 和5是不同的,’ 5 ‘是字符常量,它只是表示一个形状位‘5’的符号,在需要时按原样输出而已,并不是以数值存放的,所以不能参与运算。

char是int的一种特殊形式。在一般时候,也可以定义位char类型的变量来像int的变量一样操作。

可以将0-127的整数赋值给一个字符变量。如果将负数赋值下去,由于字符型只能读取一个字符,所以前面的符号将不会被读取。

定义字符变量,实际上是定义一个字节的整型变量,它只不过是用来存放字符而已,

char a = '-6';char b = a;printf("%c", b);//结果是输出6

signed char(有符号) 能表示的数值范围是-2^7到2^7-1 即-128-127

unsigned char (无符号)能表示的数值范围 是2^8-1 即 0-255

(还有一种字符串形式数据类型,后面会详细介绍)

布尔型 bool:

在使用次类型前需要添加预处理头文件命令#include,然后才可以定义定义次变量 如bool a;布尔型的值只有两个:false(假)和true(真)。false的值为0,true的值是1(或者是非0的值都是),bool只占用一个字节。

_BOOL长度视实际环境来定,一般可认为是4个字节。(这个是不用头文件可以定义的)但是类型值只有0和1这两个值。

3、浮点型(实数型)

C语言中,实数是以指数形式存放在内存中的,一个小数表示为指数的形式有很多,如3.14159,可以表示为 0.0314159*10^2或314.159*10^-2 等等。

由于它小数点的位置可以移动,所以叫它浮点数。所有的浮点数类型的数值以二进制指数形式存放在内存中,在储存中,系统将小数部分和指数部分分别存放。

存储分为三部分:符号位,小数位,指数位是以2幂次来表示的。存储方式都是用科学计数法来存储数据的 如:133.5(在内存中)符号位(0为正)阶码(指数位)尾数(小数点后的数)

135.5单精度的浮点数,先转整数135转换成二进制为1000 0101,然后再转小数的5转换为0.1,则135.5二进制为1000 0101.1。

这个表示尾数 然后首先要用科学计数法的形式表示出来,1000 0101.1科学计数法就是1.0000 1011*2^7

这里的阶码用移码来表示,float的偏移量为127.阶码位是8位,那么这里的阶码就是127+7=134;将134转为二进制是1000 0110;

由于规定小数点前面都为1,因此在计算机中,将不会存储小数点前面的1,这里的尾数就为00001011。其后全部补0,将其补充够23位数。这里是正数,所以符号位为0

因此数字在内存中存储为:0100 0011 0000 0101 1000 0000 0000 0000(四个字节)

**由于用二进制表示一个浮点数对于存储单元来说长度是有限的,因此不能得到完全精准的值,只能保持有限的精确度。小数部分占的位数越多。有效数字越多,指数部分占的位数越多,则能表示的数值范围越大。

**偏移量:是指浮点数表示法中的 指数域 的 编码值 为指数的 实际值 加上某个固定的值,用IEEE 754 国际标准规定该 固定值 为 2 的 (e−1)次方减 1 其中的e 为 存储指数的单位元 的长度 (即有几个 bit) (就是看一个浮点类型能表示指数部分最大范围)

单精度浮点型 float :

单精度浮点型字节数为4个字节,有效数字6-7个,小数长度23位(24的话是包括符号位)。指数域是8位单位元,固定偏移值是2 的 (7)次方减 1, 就是 2的七次方减1,等于 127

(取值范围见图)

双精度浮点型 double:

双精度浮点型存储字节数为8个字节,有效数字达到15个,小数长度52位(53的话是包括符号位)指数域是11个单位元。固定偏移值是2 的 (10)次方减 1, 就是 2的十次方减1,等于 1023

(取值范围见图)

长精度浮点型 long double :

不同的编译器对于long double 所给的数据都不一样,一般来说都是分配16个字节,有效数字达到19个。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6509

    浏览量

    87555
  • 存储
    +关注

    关注

    12

    文章

    3846

    浏览量

    84639
  • 内存
    +关注

    关注

    8

    文章

    2760

    浏览量

    72694
  • 编译
    +关注

    关注

    0

    文章

    611

    浏览量

    32358

原文标题:C语言知识总结二:基本的数据的表现形式与运算

文章出处:【微信号:C语言学习联盟,微信公众号:C语言学习联盟】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    [2.2.1]--逻辑函数的表现形式

    数字电路数字逻辑
    学习电子知识
    发布于 :2022年12月06日 21:52:20

    [2.2]--2.2数据的基本表现形式

    数据科学
    jf_75936199
    发布于 :2023年04月05日 00:22:11

    变量和数据类型PPT教程

    变量和数据类型PPT教程程序是为执行一项任务而编写的有序指令集算法是解决问题的具体方法和步骤流程图是算法的图形化表现形式C语言的特点C程序的编译和运行过程编译器将源程序转换成机器能理解的程序连接器
    发表于 06-20 16:38

    编程是一种思维方式,而代码是一种表现形式,硬件只不过是对思维方式的物理体现

    编程是一种思维方式,而代码是一种表现形式,硬件只不过是对思维方式的物理体现关于这句话,你怎么看?
    发表于 08-25 13:18

    GSM基站的实现形式是什么?

    GSM赋予基站的无线组网特性使基站的实现形式可以多种多样--宏蜂窝、微蜂窝、微微蜂窝及室内、室外型基站,无线频率资源的限制又使人们更充分地发展着基站的不同应用形式来增强覆盖,吸收话务--远端 TRX、分布天线系统、光纤分路系统、直放站。
    发表于 10-31 09:11

    安川变频器故障代码表现形式及维修

    一、安川变频器故障代码表现形式安川变频器在出现故障代码时,一共有三种表现形式:1、故障检出故障时,会出现以下状况。LED 操作器上出现表示故障内容的文字,ALM 指示灯点亮。变频器输出被切断,电机
    发表于 08-31 14:14

    电梯的干扰表现形式有哪几种?

    电梯干扰产生的原理是什么?电梯的干扰表现形式有哪几种?网线绑扎时注意事项有哪些?双绞线布线施工注意事项有哪些?
    发表于 06-02 06:19

    can线问题具体表现形式

    目录前言can线问题具体表现形式:软件问题:1.速率2.管脚3.中断回调总结前言经过一段时间的stm32的学习,个人总结了一些常见问题,这篇文章就主要写一下在can线上遇到的问题。can线
    发表于 08-06 09:37

    安川变频器在出现故障代码时有哪几种表现形式

    一、安川变频器故障代码表现形式安川变频器在出现故障代码时,一共有三种表现形式:1、故障检出故障时,会出现以下状况。LED 操作器上出现表示故障内容的文字,ALM 指示灯点亮。变频器输出被切断,电机
    发表于 09-03 08:45

    浅谈智能制造的载体,核心,关键技术和所需人才

    智能制造核心是制造,本质是先进制造,基础是数字化,趋势是(人工)智能,灵魂和难点是工艺,载体(外在表现形式)是智能装备,精神表现形式(内在表现形式)是软件。
    的头像 发表于 10-21 10:54 4109次阅读

    智能装备的组成及关键技术解析

    智能制造核心是制造,本质是先进制造,基础是数字化,趋势是(人工)智能,灵魂和难点是工艺,载体(外在表现形式)是智能装备,精神表现形式(内在表现形式)是软件。
    发表于 10-27 09:27 9745次阅读

    数据代币与数据访问控制权限有哪一些设想

    数据本身的物理表现形式(例如每个数据复制一个代币)和计算的物理表现形式(例如一个CPU分钟内一个代币)。在许多情况下,硬件资源的位置以及硬件功能的影响很大。
    发表于 12-31 11:23 722次阅读

    中国联通张涌:5G将为电竞带来新的表现形式和产业空间

    8月24日,中国联通中讯邮电咨询设计院有限公司执行董事、总经理张涌分享了对5G技术与电竞结合的全新思考,他认为5G“大带宽、低时延、多连接”的特点将对大众的生活产生极大的影响,也将更大幅度地改变与通信技术相伴相生的电子竞技产业。张涌相信,5G的到来将为电竞带来令人惊叹的表现形式和产业空间。
    的头像 发表于 08-25 10:30 2018次阅读

    数据技术在企业应用中都有哪些表现形式

      数据统计及分析主要是基于存储的海量数据进行普通的分析和分类汇总,以满足大多数常见的分析需求。数据挖掘一般没有预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预
    的头像 发表于 09-27 14:34 2999次阅读

    C语言中的数据表现形式

    变量:变量代表一个有名字的、具有特定属性的一个存储单元。 常变量:C99允许使用常变量,常变量具有变量的基本属性只是不允许改变其值。 标识符:用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符。 C语言规定标识符只能由字母、数字和下划线3种字符组成,且第1个字符必须为字母或下划线。
    的头像 发表于 03-08 16:18 380次阅读
    C语言中的<b class='flag-5'>数据</b>的<b class='flag-5'>表现形式</b>