进制的转换以及原反补码的问题

几种进制的表现形式

二进制:由0、1组成,用0b开头。
八进制:由0~7组成,用0开头。
十进制:由0~9组成。整数的默认形式是十进制。
十六进制:由0~9 和 A~F组成,用0x开头。

进制之间的转换

A:其它进制转换为十进制:位权展开法。
   1、二进制转换为十进制:0b110-->1*2^2+1*2^1+0*2^0=6
   2、八进制转换为十进制:0110-->1*8^2+1*8^1+0*8^0=72
   3、十六进制转换为十进制:0x110-->1*16^2+1*16^1+0*16^0=272
B:十进制转换为其他进制:除基取余法。即用十进制数除以要转换成的进制的
基数,取余数,直到商为0,将余数按逆序排列起来就是目标进制。

原码反码补码的概念

   原码:就是二进制定点表示法,即最高位是符号位,0表示正数,1表示负数。
其余位表示数值大小。
   反码:正数的反码还是原码,负数的反码是将原码的最高位不变,
数值位取反。
   补码:正数的补码还是原码,负数的补码是在反码的基础上,末尾+1
   为什么要使用原码反码补码?
   因为,计算机在计算数值的时候是用补码来进行运算的。

原码反码补码的相互转换

A:已知原码求补码
	已知某数X的原码为0B10110100,试求X的补码和反码。
	反码:因为原码的最高位是1,所以它是一个负数,负数的反码是在原码
的基础上,最高位不变,其余数值位取反,即反码为0b11001011
    补码:负数的补码是在反码的基础上,末位+1,即0b11001100
	
B:已知补码求原码
	已知某数X的补码  0B11101110,试求其原码。
    通过补码求原码的方法是:正数的原码反码补码都相同,而负数则需要
 先将其化为反码,再化为原码。
    0B11101110最高位是1,所以是负数,它的反码是0b11101101,其原码
 是0b10010010
C:为什么byte类型的数据范围是-128~+127?
    我们知道,byte类型最小的数是11111111,最大的数是01111111,
11111111是-127,那为什么还有-128呢?这是因为计算机中会存在10000000
和00000000,即-0和+0,但是在现实生活中,0是没有正负的,因为用
10000000表示-128,00000000表示0,这样还比原来的表示的数字范围多了1个。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值