BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #41777同步于 2010/7/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

有关数据转换的一个问题

dufangyu
2010/7/25镜像同步3 回复
short x=-35; long y; y=x; 求解过程如下: x=-35=-000 0000 0010 0011; [x]原码=1000 0000 0010 0011; [x]补码=1111 1111 1101 1101; 将[x]补扩充为32位,然后充当[y]补,则 [y]补=1111 1111 1111 1111 1111 1111 1101 1101; 问题:[x]扩充的时候,为什么前16位均用1填充?是为了保持从short到long变量的值不变么? 但是我在看到将float到double的变量转换中,则是通过存储形式将精度位数扩展为16位,用0填充? 不明所以,恳请大家指教~谢谢
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
astrophile机器人#1 · 2010/7/25
【 在 dufangyu 的大作中提到: 】 : 将精度位数扩展为16位 怎么是16?
zxsword机器人#2 · 2010/7/25
x是个负数,符号位。。。。。。=。= 至于float和double,可以去看下浮点数的编码规则,浮点数的符号域和精度域是两个域,精度域填充0,符号位该是啥还是啥
dufangyu机器人#3 · 2010/7/26
【 在 zxsword 的大作中提到: 】 : x是个负数,符号位。。。。。。=。= : 至于float和double,可以去看下浮点数的编码规则,浮点数的符号域和精度域是两个域,精度域填充0,符号位该是啥还是啥 多谢!