基础C语言知识串串香1☞基本数据类型

6217760-7a1d63bdb0bc5b7a.jpg

基本数据类型

到C99目前为止,C语言为我们提供了12个相关的数据类型关键字来表达各种数据类型。

如表所示,K&RC提供了7个,C891,C90 新増了2个,C99新増了3个。


6217760-9d51761b35728caa.jpg
C的基本数据类型

整型是C语言最基本的数据类型,它以二进制编码的方式进行存储,具体可以包括字符、短整型、整型和长整型等。例如,整数2的二进制表示为10,它在8位与32位的操作系统中存储方式如图所示。

6217760-c5872f9420e6942e.jpg

虽然在计算机中整数是以二进制编码方式进行存储的,但为了便于表达,有时候又会用十六进制编码方式表示(例如,在32位操作系统下,整数2的十六进制编码方式为0x00000002),二进制和十六进制之间能够很方便地进行转换

与此同时,整数类型又可分为有符号( signed)和无符号( unsigned)两种类型,limits.h文件定义了整型数据类型的表达值范围。

6217760-b22100b3bf98659c.jpg
ANSI标准定义的整数类型

简单地讲,有符号和无符号整数间的区别在于怎样解释整数的最高位。如果定义一个有符号整数,则C编译程序生成的代码认为该数最高位是符号标志:符号标志为0,则该数为正;符号标志为1,则该数为负。

负数采用2的补码的形式来表示,即对原码各位求反(符号位除外),再将求反的结果加1,最后将符号位设置为1。例如,在32位操作系统中,有符号整数-2的存储方法如下。

第一步:取绝对值2的二进制编码。

00000000 00000000 00000000 00000010

第二步:求反(符号位除外)。,

0111111111111111 11111111 11111101

第三步:将求反的结果加1。

01111111 11111111 11111111 11111110

第四步:将符号位设置为1。

11111111 11111111 11111111 11111110 ,

因此,有符号整数-2的二进制编码为1111111 1111111 1111111 1111110,十六进制编码为0xFFFFFFFE。

最后还需要说明的是,当类型修饰符被自身使用时(即它不在基本类型之前时),假定其为int型。也就是说,表的两种类型是等效的。


6217760-35c8952de1fe177b.jpg

===========我是华丽的分割线===========


更多知识:
点击关注专题:嵌入式Linux&ARM

或浏览器打开:https://www.jianshu.com/c/42d33cadb1c1

或扫描二维码:

6217760-e6bba06e005d8fe7.jpg

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Leon_George

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

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

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

打赏作者

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

抵扣说明:

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

余额充值