鱼C论坛

 找回密码
 立即注册
查看: 1444|回复: 0

[技术交流] 关于数据取值的话

[复制链接]
发表于 2020-4-20 21:52:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
刚刚发现个问题。按照常理,我们知道这是由于数据溢出导致的结果。按照二进制就可以算出来。

200(10) == 128(10) + 64(10) + 8(10) == 1000 0000(2) + 100 0000(2) + 1000(2) == 1100 1000(2)

1100 1000(2) + 1100 1000(2) == 1 1001 0000(2)

char 类型占一个字节(8 位),因此舍弃掉最前边的进位,结果为 1001 0000(2) == 144

以上,是小甲鱼的解释。但是!!我刚刚在计算的过程中发现一个奇妙的事情。
由于定义的是无符号的char,这就意味着可以储存最大128*2 == 256,而我们计算出的结果为200 + 200 == 400,那么数据溢出,有400 - 256 == 144 正好是我们要求解释的结果。不知道为啥,这算是错误吗?
后面,我又把数字换了下得到的结果和我猜想的一样,我又以为是真的。这很打脑阔。。
}A}RHJAI6UMBOB8C1~ZG)U3.png
4WQ4~CF~8J4EY_[)[MGMRNH.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-14 17:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表