Skip to content

Latest commit

 

History

History
69 lines (49 loc) · 2.37 KB

File metadata and controls

69 lines (49 loc) · 2.37 KB

进制

常见的是进制如下表

进制 英文 前缀 数字 例子
二进制 Binary 0b 共2个:0和1 0b1110
八进制 Octal 0o 共8个:0~7 0o1345
十进制 Decimal 0d(或省略不写) 共10个:0~9 0d2435或者2435
十六进制 Hexadecimal 0x 共16个:09和AF(或小写的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表示负数。

原码

将一个数值转换为二进制,就是这个数值的原码。

3  原码为0000 0000 0000 0011
-3 原码为1000 0000 0000 0011

反码

  • 正数的反码就是自身的原码。
  • 负数的反码是在自身原码的基础上,符号位不变 其它位都取反。
3  反码为0000 0000 0000 0011
-3 反码为1111 1111 1111 1100

补码

  • 正数的补码就是自身的原码
  • 负数的补码是在其反码的基础上加1
3  补码为0000 0000 0000 0011
-3 补码为1111 1111 1111 1101

表格列出如下:

类型 定义 举例: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