Tes*_*lem 2 java primitive-types
我可以存储-127到127之间的数字,但除此之外是不可能的,编译器会发出警告.二进制值127是01111111,130是10000010仍然是相同的大小(8位),我认为我可以存储130字节,但它是不可能的.那是怎么发生的?
Java没有无符号类型,Java中的每个数字类型都是有符号的(除了char它不是用来表示数字而是用于unicode字符).
我们来看看吧byte.它是一个8位的字节.如果它是无符号的,是的,它的范围是0..255.
但如果它是有符号的,则需要1位信息来存储符号(2个可能的值:+或 - ),这使我们留下7位来存储数字(绝对)值.7位信息的范围是0..127.
请注意,有符号整数的表示在大多数语言中使用2的补码数格式,包括Java.
注意: Java byte类型的范围实际上是-128..127.范围-127..127仅包含255个数字(不是256,这是8位的所有组合的数量).
| 归档时间: |
|
| 查看次数: |
1428 次 |
| 最近记录: |