进制
(1)是一种进位的方式。X进制,表示逢x进1。
(2)Java中整数常量的表示
1:二进制 由0 , 1组成。以0b开头。JDK7以后的新特性。
2:八进制 由0-7组成。以0开头。
3:十进制 由0-9组成。默认就是十进制。
4:十六进制 由0-9,A-F(不区分大小写)组成,以0x开头。
(3)计算机存储数据时用高低电平(高低位)来存储的 也就是 二进制的 1 和 0
1个就二进制数据被称为位 (bit)
1byte = 8 bit;
1Kb = 1024byte;
1Mb = 1024Kb;
1Gb = 1024Mb;
1Tb = 1024Gb;
(4)进制转换:
1):其他进制到十进制
系数:就是每一位上的数据。
基数:X进制,基数就是X。
权:在右边,从0开始编号,对应位上的编号即为该位的权。
结果:把系数*基数的权次幂相加即可。
二进制:1011
十进制:
八进制:74
十进制:
十六进制:a3
十进制:
2):十进制到其他进制
除基取余,直到商为0,余数反转。
十进制:60
结果:
二进制
八进制
十六进制
3):快速转换
1:8421码。
1 1 1 1 1 1 1 1
----------------------------------------------------------
128 64 32 16 8 4 2 1
对照上面的8421码表:
33的二进制 00100001
00101010的十进制 42
2:二进制--八进制(3位组合)
1001110
八进制 001 001 110
———— ———— ————
| | |
——————————————————
|
116
3:二进制--十六进制(4位组合)
1001110
十六进制 0100 1110
———— ————
| |
————————
|
4e
4):有符号数据的表示
由于数据时存在正数负数之分的
原码:就是有符号数据人类能看起来方便的一组二进制表示形式,最高位是符号位,0表示正,1表示负,
其他位表示数据位
反码:正数的反码和原码一样,负数的反码是符号位不变 数据位取反 0变1 1变0
补码:正数的补码和原码一样,负数的补码是反码加1
举例: 7 -7
原码: 00000111 10000111
反码: 00000111 11111000
补码: 00000111 11111001
计算机在做预算的时候(比如 1-1=0),如果按我们人类的思维来说的话
我们就会想到
00000001
- 00000001
————————————
00000000
这样原码相减的话就得到了0,但是物理学电学上是没有相减的概念的,只能是不同的
电信号相叠加才产生新的电信号,因为这样 所以计算机存储的全是数据的补码
两个补码相加 就得到了0
00000001
+ 11111111
————————————
00000000 |
|