进制
常见的是进制如下表
进制
英文
前缀
数字
例子
二进制
Binary
0b
共2个:0和1
0b1110
八进制
Octal
0o
共8个:0~7
0o1345
十进制
Decimal
0d(或省略不写)
共10个:0~9
0d2435或者2435
十六进制
Hexadecimal
0x
共16个:0~9和A~F(或小写的a~f)
0xFF32
原码/反码/补码
在Java中,short类型数字占2个字节,2×8=16个位。对于short类型的数字3来说:其二进制表示为11,因为占用2个字节,前面的要用0补上,即0000 0000 0000 0011,如果是-3,则用1000 0000 0000 0011表示:最高位为0表示正数,最高位为1表示负数。
原码
将一个数值转换为二进制,就是这个数值的原码。
反码
正数的反码就是自身的原码。
负数的反码是在自身原码的基础上,符号位不变 其它位都取反。
补码
正数的补码就是自身的原码
负数的补码是在其反码的基础上加1
表格列出如下:
类型
定义
举例:3
举例:-3
原码
数值的二进制
0000 0000 0000 0011
1000 0000 0000 0011
反码
正数的反码就是其原码;负数的反码是在原码的基础上,符号位不变,其他位都取反
0000 0000 0000 0011
1111 1111 1111 1100
补码
正数的补码就是其原码;负数的补码是在反码的基础上加1
0000 0000 0000 0011
1111 1111 1111 1101
注:例子中的3为short
类型
TODO:为什么要用补码?
Java数据类型
类型
字节数
(二进位制)位数
最小
最大
默认
其他
byte
1
8
-128(-27)
127(27-1)
0
short
2
16
-32768(-215)
32767(215-1)
0
int
4
32
- 2,147,483,648(-231)
2,147,483,647(231 -1)
0
long
8
64
-9,223,372,036,854,775,808(-2^63)
9,223,372,036,854,775,807 (2^63 -1)
0L
float
4
32
0.0f
double
8
64
0.0d
boolean
1
false
char
2
16
Last updated