Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C. Тема 1. Раздел 3

.pdf
Скачиваний:
17
Добавлен:
21.03.2016
Размер:
1.07 Mб
Скачать

Тема 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