Байт равен 8 байтам, что равно 2^8.
Слово имеет размер 4 байта, что равно 2^4.
--------------------------------------------------------------------------------------------------------------------------------------------------
Различные типы диапазонов значений
int8: -128 ~ 127
int16: -32768 ~ 32767
int32: -2147483648 ~ 2147483647
int64: -9223372036854775808 ~ 9223372036854775807 uint8:
0 ~ 255
uint16 : 0 ~ 65535 uint32: 0 ~ 4294967295 uint64: 0 ~
18446744073709551615
--------------------------------------------------------------------------------------------------------------------------------------------------
1 ТБ = 1024 ГБ
1 ГБ = 1024 МБ
1 МБ = 1024 КБ
1 КБ = 1024 байта
1 байт = 8 бит
Байт также называют байтом, бит также называют битом, а бит — это наименьшая единица в памяти.
--------------------------------------------------------------------------------------------------------------------------------------------------
int8 / uint8:占8Bit = 占1Byte = 在内存中二进制表现形式为:00000000 00000000
int16 / uint16:占16Bit = 占2Byte = 在内存中二进制表现形式为:00000000 00000000 00000000 00000000
int32 / uint32:占32Bit = 占4Byte = 在内存中二进制表现形式为:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
int64 / uint64:占64Bit = 占8Byte = 在内存中二进制表现形式为:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
--------------------------------------------------------------------------------------------------------------------------------------------------
Подробное объяснение диапазона значений типа int / uint (от двоичного до десятичного), на примере int8 / uint8: int8
занимает 1 байт, 1 байт (байт) занимает 8 бит (бит),
старший бит представляет знаковый бит 1 — отрицательный знак; 0 — положительный знак
Тогда двоичное значение максимального значения (127) равно:
0 1 1 1 1 1 1 1
Преобразование в десятичное число вычисляется от младшего к старшему:
0 1 1 1 1 1 1 1 0
*2^7 +1*2^6 +1*2^5 +1*2^4 +1*2^3 +1*2^2 +1*02^1 +1*2^0 0 +64 +32 +16 +8 +4 +2 +1 =127 Тогда двоичное значение минимального значения (-128) равно: 1 0 0 0 0
0
0
0
256 / 2 = 128 4. Отрицательные числа - это 128 чисел, минимальное значение -128 5. Положительные числа - это 128 чисел, 0 соответствует одному числу, а максимальное значение равно + 127. Если это uint8 (8 бит без знака - нет отрицательного числа), 2 ^ 8 = 256 0 соответствует одному числу, поэтому максимальное значение равно 255.
Другой метод вычисления битов int/uint такой же, как int8/uint8
----------------------------------------------------------------------------------------------------------------------------------------------------
Длинный
--------------------------------------------------------------------------------------------------------------------------------------------------
1. long — это ключевое слово в языке C, представляющее тип данных, а в китайском — длинное целое число.
2. long — это сокращение от long int, то есть тип long int и тип long в языке Си совпадают.
3. Каждый тип long занимает 4 байта В 32-битной системе компиляции пространство, занимаемое long и int, одинаково. Это также привело к тому, что длинные переменные стали использоваться все реже и реже.
4. Диапазон целых чисел, которые могут быть представлены типом long, составляет -2 147 483 648 ~ 2 147 483 647, то есть -2^32 ~ 2^32-1.
При использовании для ввода и вывода в формате C символом формата длинного типа является "%ld".
5. Как и другие целые типы, long можно использовать в сочетании с unsigned для формирования unsigned long, то есть беззнакового длинного целого числа, и его символ формата — «%lu».
6. В некоторых компиляторах, таких как gcc, два типа long используются вместе, то есть тип long long, который представляет самый длинный системный целочисленный тип в языке C, и каждый тип long long занимает 8 байтов, 64 бита. Его символ форматирования "%lld"
--------------------------------------------------------------------------------------------------------------------------------------------------
Интерн.
--------------------------------------------------------------------------------------------------------------------------------------------------
Тип данных int занимает в памяти 4 байта (4*8 бит), что составляет 32 бита. Первый бит представляет положительное или отрицательное значение int, а последние 31 бит хранят данные. Когда int принимает максимальное значение, оно эквивалентно 31 1 с (1*2^30+1*2^29+1*2^28+....+1*2^0), которые можно преобразовать в 32 бита, обрезанных до 1, а остальные до 0, а затем вычесть 1 (1*2^31-1). В пересчете это около 2,1 млрд.
--------------------------------------------------------------------------------------------------------------------------------------------------
уголь
--------------------------------------------------------------------------------------------------------------------------------------------------
1. Диапазон значений одинаков
. Есть два типа символов: один без знака char, а другой знаковый char. У них разные диапазоны значений:
Диапазон значений беззнакового символа: 0~255
Диапазон значений знакового символа: -128~127
2. Строка состоит из нескольких символов И
строки, и символы могут быть представлены символами, обратите внимание на разницу:
//string
char* p = "123" //строка использует двойные кавычки
//символ
char p = '1';//символ использует одинарные кавычки
char p = '2';//символ использует одинарные кавычки char p = ' 3
';// символ использует одинарные кавычки как заполнители;
printf("%с", 'А');
printf("%s", "А");
--------------------------------------------------------------------------------------------------------------------------------------------------
Разница в длине целочисленного байта на разных платформах
Платформа/Тип | уголь | короткий | инт | длинный | долго долго |
---|---|---|---|---|---|
16 бит | 1 | 2 | 2 | 4 | 8 |
32 бит | 1 | 2 | 4 | 4 | 8 |
64 бит | 1 | 2 | 4 | 8 | 8 |