鱼C论坛

 找回密码
 立即注册
查看: 2134|回复: 4

[已解决]有关数制转换

[复制链接]
发表于 2018-3-24 11:39:20 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 dt3tc 于 2018-3-24 11:41 编辑

咱们知道-5和251的二进制形式都是11111011,那么请问如何确保编译器不会混淆的呢
谢谢
最佳答案
2018-3-24 11:53:30
在存储空间中,是按照补码的形式存储的,如果存储空间存储的是这个11111011,

那么他只会认为这个是一个负数-5,而不会认为是251,所以不会存在混淆的问题在编译器上

你认为他会混淆,是因为实际他可以表示的范围没有这么大,所以会产生溢出,这个是你在编写程序中应该

注意避免这样的问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-24 11:53:30 | 显示全部楼层    本楼为最佳答案   
在存储空间中,是按照补码的形式存储的,如果存储空间存储的是这个11111011,

那么他只会认为这个是一个负数-5,而不会认为是251,所以不会存在混淆的问题在编译器上

你认为他会混淆,是因为实际他可以表示的范围没有这么大,所以会产生溢出,这个是你在编写程序中应该

注意避免这样的问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-24 11:54:25 | 显示全部楼层
这取决于你放置这个二进制的容器是怎么样的~
这里拿 char打比方~
unsigned char   无符号字符型~ 也就是说 他只能存放非负数的值!也就是说把符号位也计入数值里面~
1111 1011  这里全部表示的都是数值!
char                 这是有符号位的字符型~   符号位为1 那么他是负数, 符号为0 那么他是正数~
1111 1011 而这里的第一位表示符号位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-24 12:18:29 | 显示全部楼层
小甲鱼有一期视频专门讲进制转换的你可以去看看比较详细
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-24 13:30:48 | 显示全部楼层
大家的回答都很有道理,但是最佳答案只有一个,不好意思了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-1 17:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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