黑马程序员技术交流社区

标题: 关于负数的二进制转换 [打印本页]

作者: 空心祭    时间: 2014-2-20 16:48
标题: 关于负数的二进制转换
都知道负数的二进制是其正数的二进制取反然后加1获得的
那么比如要进行负数的二进制跟十进制的转换的话
是不是非得把负数的二进制形式转换成与其对应的正数的二进制然后再转换为十进制
在不借助程序的情况下有没有直接转换的方法?
初学者,见笑

作者: ___________゛M    时间: 2014-2-20 17:11
首先负数的二进制是以其补码形式存在的 , 转换的时候要看其前面最高位的符号位是0 还是1 ,
如果是0则表示其为正数, 如果是1则表示其为负数,
如果为0则直接转换为其十进制即可。
如果为1,则先转换为其反码形式,再转换成其原码,最后转为十进制即可。
作者: 空心祭    时间: 2014-2-20 20:52
___________゛M 发表于 2014-2-20 17:11
首先负数的二进制是以其补码形式存在的 , 转换的时候要看其前面最高位的符号位是0 还是1 ,
如果是0则表示 ...

那么就是负数没办法直接用自身的二进制表现形式进行十进制的转换对吧
作者: 徐老爹    时间: 2014-2-20 21:54
楼主的意思是想直接通过权,系数和值的方法直接看出负数的二进制数得十进制表现形式是多少?即11111111想通过:
1*2^7+1*2^6+1*2^5+....+=一个结果?这样做的感觉实在没有什么意义啊。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2