C. Тема 1. Раздел 3
.pdf
Тема 1. Основные сведения о языке. Раздел 3. Встроенные типы данных
Целые беззнаковые числа
Двоичные числа
Целые числа со знаком
Дополнительный код
Вещественные числа с фиксированной точкой
Вещественные числа с плавающей точкой
Символы
Объявления переменных и констант
Сравнение констант с символическими константами
Спецификаторы объявления переменной auto
и register
Часть 1
Целые числа без знака представлены очевидным образом – в двоичной системе счисления
100110102 = 15410 = 2328 = 9A16
Двоичная система – BIN
Восьмеричная система – OCT
Десятичная система – DEC
Шестнадцатеричная система – HEX
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	Размер  | 
	Минималь-  | 
	
  | 
	
  | 
  | 
	Тип  | 
	ное  | 
	Максимальное значение  | 
	
  | 
|
  | 
	в байтах  | 
	
  | 
|||
  | 
	
  | 
	значение  | 
	
  | 
	
  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	unsigned char  | 
	1  | 
	0  | 
	255  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	unsigned short  | 
	2  | 
	0  | 
	65,535  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	unsigned int  | 
	2  | 
	0  | 
	65,535  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	4  | 
	0  | 
	4,294,967,295  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	unsigned long  | 
	4  | 
	0  | 
	4,294,967,295  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	unsigned long long (C99)  | 
	8  | 
	0  | 
	18,446,744,073,709,551,615  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
Важно наличие ключевого слова unsigned
Можно установить использование беззнаковых целочисленных типов без unsigned с помощью опций компилятора
В компиляторе Microsoft используется ключ /J
Определение размера переменной в байтах
size_t sizeof unary-expression
size_t sizeof ( type-name )
Пример
char s[] = "Hello, World!";
printf( "sizeof( char ): %d\n", sizeof( char ) );
printf( "sizeof( %s ): %d\n", s, sizeof( s ) );
 Результат
sizeof( char ): 1
sizeof( Hello, World! ): 14
Часть 2
 100110102  1 27 + 0 26 + 0 25 + 1 24 + 1 23 + 0 22 +
1 21 + 0 20 = 15410
Из BIN в HEX
Нужно разделить число на тетрады цифр (последовательности из четырёх цифр)
Преобразовать каждую тетраду в символ HEX
Собрать число из получившихся символов
Из HEX в BIN
Разделить число на отдельные символы
Преобразовать каждый символ в тетраду BIN
Собрать число из получившихся тетрад
1 = 1
10 = 2
11 = 3
100 = 4
101 = 5
110 = 6
111 = 7
1000 = 8
1001 = 9
1010 = A
1011 = B
1100 = C
1101 = D
1110 = E
1111 = F
Исходное число
10011010
Разбивка на тетрады
1001 1010
Преобразование каждой тетрады
1001 = 9 1010 = A
Преобразованное число
9A
