Тип INT в SQL расчет максимального значения - PullRequest
0 голосов
/ 11 июля 2020

Я сейчас изучаю SQL.

Когда я смотрел на INT, я пришел к пониманию, что тип INT имеет длину 4 байта, что соответствует 8 битам каждого байта, что приводит к тому, что каждый INT является 32 бита.

Однако для INT сказано, что максимальное значение для беззнаковых типов равно (2 ^ 32) -1, где -1 учитывает значение 0. Я понимаю, что 32 происходит из того факта, что каждый int - 32 бита.

Мой вопрос в том, откуда в расчетах берется 2?

Моя интуиция подсказывает мне, что каждый бит будет иметь какую-то меру стоимостью 2

Ответы [ 2 ]

1 голос
/ 11 июля 2020

int на самом деле является значением со знаком в SQL. Диапазон значений от -2^31 до 2^31 - 1, то есть от -2,147,483,648 до 2,147,483,647. В этом диапазоне имеется ровно 2^32 возможных значений. Обратите внимание, что он включает 0.

Целое число без знака может находиться в диапазоне от 0 до 2^32-1, то есть до 4,294,967,295. - 1 s вызваны тем, что 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    
0 голосов
/ 11 июля 2020

Компьютеры используют двоичную систему для хранения значений. Давайте попробуем провести аналогию между двоичной и десятичной системой:

Рассмотрим десятичную (десятичную) систему. Если у вас есть число с 32 десятичными знаками, каждое из которых имеет значение 0-9, у вас есть 10 ^ 32 возможных значений (очевидно, достаточно; мы используем эту систему ежедневно).

Теперь рассмотрим систему на основе 2, который используется компьютерами (из практических соображений - два состояния легче всего различить guish, а логика подключения c проще всего). Каждое место (бит) имеет значение 0–1, поэтому существует 2 ^ 32 возможных значения.

...