int类型

kxe2p93d  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(487)

我目前正在学习sql。
在查看int时,我了解到int类型是4字节长的,每个字节转换为8位,导致每个int为32位。
但是,对于int,据说无符号类型的最大值是(2^32)-1,其中-1表示0值。我知道32是因为每个int是32位。
我的问题是在计算中2是从哪里来的?
我的直觉告诉我,每一位都会有一个值为2的度量。

gwo2fgha

gwo2fgha1#

计算机使用二进制来存储值。让我们尝试一下二进制和十进制之间的类比:
考虑10进制(十进制)。如果数字有32位小数位,每一位都有0-9的值,那么就有10^32个可能的值(显然足够了;我们每天都使用这个系统)。
现在考虑基于2的系统,这是计算机使用的系统(出于实际原因-两种状态最容易区分,布线逻辑最简单)。每个位置(位)都有值0-1,因此有2^32个可能的值。

xxhby3vn

xxhby3vn2#

int 实际上是sql中的有符号值。范围从 -2^31 通过 2^31 - 1 ,即 -2,147,483,6482,147,483,647 . 确实有 2^32 tis范围内的可能值。请注意,它包括 0 .
无符号整数的范围为 02^32-1 ,这取决于 4,294,967,295 . 这个 - 1 是因为 0 包含在范围内,因此计数从 0 而不是 1 .
可能值的范围很容易用较少的位看到。例如,3位可以表示-4到3之间的值:

Bits    Unisgned     Signed
000        0            0
001        1            1
010        2            2
011        3            3
100        4           -4
101        5           -3
110        6           -2
111        7           -1

相关问题