Long, int, uint, char и другие целочисленные сводки

Байт равен 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

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

Guess you like

Origin blog.csdn.net/cyy1104/article/details/130727266