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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Yoyoqiu 中级黑马   /  2016-3-20 10:36  /  907 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  二进制    0B  0b           0b100
  八进制    0                 0100
  十进制                      100
  十六进制  0X  0x           0x100
  
  原码反码补码只说的是二进制   计算机 只接受二进制
已经知道原码求补码
0B11001011     
疑问
有没有这种     0X11001011
               = 1*16^7+1*16^6+1*16^3+1*16^1+1*16^0
那八进制的呢   011001011 怎么办  那最高位正负怎么表示
是不是原码反码补码就不能用 0B 0 0X 表示

我凌乱了

4 个回复

倒序浏览
我记得看视频的时候说虚拟机运算的时候是以补码的形式运算,按照我的理解,虚拟机运算的时候会将八进制,十进制,十六进制转换成二进制,然后再转换成补码运算.
回复 使用道具 举报
没太看懂你的疑问。
不过既然你都已经知道,进制计算的时候要换算成2进制进行,那解释就简单了。
比如说你已经知道10进制的10用8进制是12,想知道8进制的-10的话,那就先算出10的2进制是 0000 0000 0000 1010,然后根据正负两个数的2进制值相加会以“在最高位的基础上进一位的方式得到0”,得出-10的2进制为 (1) 0000 0000 0000 0000减去 0000 1010,得到 1111 1111 1111 0110,然后用2进制数算8进制数就是三位三位的看,也就是  (00)1 111 111 111 110 110,由此得到177766就是10进制的-10的8进制表示。
回复 使用道具 举报
额……又仔细看了一遍问题,,原来是LZ在问“是不是原码反码补码就不能用 0B 0 0X 表示”……好吧,答案是“YES”。。
不过这个说法本身就不对,所谓的原码反码补码就只是针对2进制数的,是计算机用来存储和计算用的(码就代表了只有0和1),其他进制数“没有原反补”,有的是“相应的2进制数的原反补”。。
另外,正负号这个概念只适用于10进制,你拿电脑自带的计算器试一试,输入一个负数,然后切换到其他进制,再切换存储长度(字 字节 双字 四字),你就会发现同一个负数在某一进制下(2、8、16),随着存储长度的变化其表示值也是不同的,这就是我上面写的算法决定的。。
回复 使用道具 举报
谢谢解答   看了好几遍   是不是 这样理解
原码反码补码 就是针对二进制   
八进制 十进制 十六进制没有这种说法
那么 如果我要求 十进制下的-10的 八进制表示      结果是什么
如果先转换成二进制 在原反补算 再转成八进制
用一个字节  两个字节 三个字节  算出来结果都是不同的 就是前面补0的时候  因为补0的多少不一样  所以   结果不一样
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马