继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【备战春招】第七天数据在内存中的储存

Cc大佬
关注TA
已关注
手记 21
粉丝 1
获赞 4

课程内容:

数据在内存的储存

有符号和无符号

平时写的int a 就是 signed int a 不过这个signed省略了

8it数据储存

有符号

char ,有符号类型,占1bytes。 可以表示负数,0,正数。范围[-128~127] -128 ~ -1 0~127

无符号

unsigned char ,无符号类型,占1bytes。可以表示0,正数。范围[0~255]

8bit=1bytes

超出范围数据的计算方法

概论

如上,有符号和无符号数据范围是不一样的,如果数据超出上面范围了,该怎么计算

设计规则

无符号类型的数原码,反码,补码是它本身. [正数和0]

有符号类型的数的最高位表示符号位,0表示为正数,1表示为负数

负数的反码 = 符号位不变,其他位按位取反

负数的补码 = 反码 + 1

计算方法

方法

先计算整数的补码(=右边的数)

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

unsigned char

若是为unsinged char类型,一定为正数或0,原,反,补一样.%d输出的原码就是补码,

直接转换为原数输出即可。

char

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

个人理解

char a其中char是变量类型a是变量,先判断变量是正数还是负数

正数的补码

负数的补码

观察变量的类型

unsigned char

补码转换原数输出就可以

char

最高位1

负数转换原码输出

最高位0

正数转换原数输出就可以

观察变量的类型

unsigned char

补码转换原数输出就可以

char

最高位1

负数转换原码输出

最高位0

正数转换原数输出就可以

学习收获:

和之前学的补码那些知识点完美的串了起来

也理解了 如果数据超出内存的呈现方式

之前看到输出的结果,现在也理解了逻辑

截图打卡:

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP