C语言-----学习记录3

数据在内存中的存储

数据类型

有符号数和无符号数

在C语言中,基本数据类型都可以分为有符号(signed)和无符号数(unsigned)。

signedunsigned
含义有符号数无符号数
写法(signed) int,(signed) char,其中signed可省略不写unsigned int,unsigned char

示例:

数据的储存

例如:char

char ,有符号类型,在内存中占1个字节。 可以表示负数,0,正数。表示的数据范[-128~127]

unsigned char ,无符号类型,在内存中占1个字节。可以表示0,正数。表示的数据范[0~255]

原码、反码、补码

无符号类型的数:原码、反码、补码都相同。

10

原码:00000000  00000000  00000000  00001010

反码:00000000  00000000  00000000  00001010

补码:00000000  00000000  00000000  00001010

有符号类型的负数的原码、反码和补码如下 :(先绝对,再减一, 然后取反)

-10   

          其中第一位表示符号,1表示负数,0表示正数

原码:10000000  00000000  00000000  00001010

         符号位不变其余位取反

反码:11111111  11111111  11111111  11110101

         在反码的基础上加一

补码:11111111  11111111  11111111  11110110

超出范围数据的计算方法

先计算整数的补码

把补码赋值给变量,然后观察变量的数据类型。

若是为unsinged char类型,一定为正数或0,原,反,补一样.%d输出的原码就是补码,直接转换为元素输出即可。

若是为char类型,观察变量内存存储数据的最高位,1 表示为负数,%d输出需要转换为原码输出

示例:

 强制类型转换

 含义: 采用某种方式将某种数据类型强制转换为我们需要的数据类型。

显示转换

格式:(数据类型)变量名

示例:

隐式转换

若运算符两边的类型不匹配。系统一般会默认触发隐式的强转。

规则如下:

示例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值