A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 空心祭 中级黑马   /  2014-2-20 16:48  /  1043 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

都知道负数的二进制是其正数的二进制取反然后加1获得的
那么比如要进行负数的二进制跟十进制的转换的话
是不是非得把负数的二进制形式转换成与其对应的正数的二进制然后再转换为十进制
在不借助程序的情况下有没有直接转换的方法?
初学者,见笑

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

3 个回复

倒序浏览
首先负数的二进制是以其补码形式存在的 , 转换的时候要看其前面最高位的符号位是0 还是1 ,
如果是0则表示其为正数, 如果是1则表示其为负数,
如果为0则直接转换为其十进制即可。
如果为1,则先转换为其反码形式,再转换成其原码,最后转为十进制即可。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
___________゛M 发表于 2014-2-20 17:11
首先负数的二进制是以其补码形式存在的 , 转换的时候要看其前面最高位的符号位是0 还是1 ,
如果是0则表示 ...

那么就是负数没办法直接用自身的二进制表现形式进行十进制的转换对吧
回复 使用道具 举报
楼主的意思是想直接通过权,系数和值的方法直接看出负数的二进制数得十进制表现形式是多少?即11111111想通过:
1*2^7+1*2^6+1*2^5+....+=一个结果?这样做的感觉实在没有什么意义啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马