按照无符号存储对应的数据需要使用的数据类型
2^8-1 0~255 占用 1 byte | 2^16-1 0~65535 占用 2 byte | 2^24-1 0~1千万 占用 3 byte | 2^32-1 0~40亿多 占用 4 byte | 2^64-1 0~20位数字 占用 8 byte | |
java | byte | short | 无 | int | long |
mysql | tinyint | smallint | mediumint | int | bigint |
java 中对于数字按照有符号存储的,即用补码表示。二进制中,首位1代表负数,0代表正数。因为首位符号表示正负数的关系,能表示的最大数正数和负数要对半使用。
2^32-1 的最大值
4,294,967,295
Integer.MAX_VALUE的最大值
2,147,483,647
int 无符号能表示的最大数和用掩码表示的正数最大数都是 10位数,表示几十亿。
2^64-1 的最大值
18,446,744,073,709,551,615
Long.MAX_VALUE 的最大值
9,223,372,036,854,775,807
long 无符号能表示的最大数是20位,用掩码表示的正数最大数是 19位数。