10进制转2进制问题

[复制链接]
查看11 | 回复3 | 2009-2-13 22:01:01 | 显示全部楼层 |阅读模式
有符号类型
32767的内存是0111111111111111
为什么
0111111111111111+1=1000000000000000
呢??
各位大虾 帮帮忙吧
逢2进1的时候
得2的位置为什么会变成0呢??

回复

使用道具 举报

千问 | 2009-2-13 22:01:01 | 显示全部楼层
我来帮助你吧~~!0111111111111111+1=1000000000000000 是因为二进制是逢二进一我举一个简单的例子01+01=10啊自己体会一下就会知道的 啊 ~~!32767的内存是0111111111111111 是因为计算机是以二进制进行数据的存储的,所以都用0或1表示啊 ~~!而0111111111111111 二进制转化成十进制正好是32767啊~~!...
回复

使用道具 举报

千问 | 2009-2-13 22:01:01 | 显示全部楼层
晕 你看看那十进制阿 比如 9+1=10对吧个位满十进一 个位不是变成零了么? 二进制也一样阿...
回复

使用道具 举报

千问 | 2009-2-13 22:01:01 | 显示全部楼层
这就是所谓计算溢出问题,是有符号数必须避免的.因为有符号的范围是[-32768 +32767]之间,因此32767+1 就出现了溢出从而得到了-32768解决方法,位数扩展以将16位扩展到24位为例32767 的24位表达方式为 00000000 01111111 11111111此时
00000000 01111111...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行