几种进制的表现形式
二进制:由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个。