chr*_*isg 1 java implementation jvm
例如,Java数据类型字节在存储器上的单个字节中保存-128到127的数据.要启用从0到127之间的-1到-128之间的distingush将需要额外的数据,这将使数据类型obver其分配的存储.不可否认,它只需要1个额外的位,但它仍然会结束.
java如何做到这一点?
两个补码:
基本类型在所有机器和所有实现中定义为相同,并且是各种大小的二进制补码整数,单精度和双精度IEEE 754标准浮点数,布尔类型和Unicode字符char类型.- Java语言规范:简介
您可以将其想象为0到255之间的整数,从中总是减去128 .
更技术性的:通过反转其位并加1,可以(并且将)否定整数(正面→负面).这几乎就像是One的补码(它简单地反转所有位 - 因此补码.但是一个补码有一个问题,它有两个不同的零:+ 0和-0(浮点数也有这个,但由于其他原因,更有用) ☺).两补加一个,从而延长负值的范围内解决这个(这就是为什么它是-128 ..127).
在某种程度上,你可以说标志确实"存储"在数字的第一位.所以你观察它需要一点存储是正确的.但是a byte(正或负,忽略符号)的数值范围只需要7位,所以你再次有一个字节.
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |