Хрестоматия по программированию на Си в Unix




Приложения. Хрестоматия по программированию на Си в Unix - стр. 2


При вызове функций их аргументы - тоже выражения, поэтому в них приводятся char,short к int и float к double. Это говорит о том, что аргументы (формальные параметры) функций можно всегда объявлять как int и double вместо char,short и float соответственно.

Зато спецификатор unsigned является существенным.

В присваиваниях.

op = expr;

Тип выражения expr приводится к типу левой части - op. При этом возможны приведения более "длинного" типа к более "короткому" при помощи усечения, вроде:

int --> char обрубается старший байт. long --> int обрубается старшее слово. float --> int отброс дробной части double --> int и обрубание мантиссы, если не лезет. double --> float округление дробной части.

Вот еще некоторые приведения типов:

signed --> unsigned виртуально (просто знаковый бит unsigned --> signed считается значащим или наоборот). unsigned int --> long добавление нулей слева. int --> long расширение знакового бита. float --> int преобразование внутреннего int --> float представления: машинно зависимо.

Некоторые преобразования могут идти в несколько стадий, например:

char --> long это char --> int --> long char --> unsigned long это char --> int --> unsigned long

Таблица шестнадцатеричных чисел (HEX).

%d %o %X побитно
0 0 0x0 0000
1 1 0x1 0001
2 2 0x2 0010
3 3 0x3 0011
4 4 0x4 0100
5 5 0x5 0101
6 6 0x6 0110
7 7 0x7 0111
8 010 0x8 1000
9 011 0x9 1001
10 012 0xA 1010
11 013 0xB 1011
12 014 0xC 1100
13 015 0xD 1101
14 016 0xE 1110
15 017 0xF 1111
16 020 0x10 10000

Таблица степеней двойки.

n 2**n n 2**n
0 1 8 256
1 2 9 512
2 4 10 1024
3 8 11 2048
4 16 12 4096
5 32 13 8192
6 64 14 16384
7 128 15 32768
  16 65536

Двоичный код: внутреннее представление целых чисел.

Целые числа в большинстве современных компьютеров представлены в виде двоичного

кода. Пусть машинное слово состоит из 16 бит. Биты нумеруются справа налево начиная с 0. Обозначим условно бит номер i через b[i]. Значением его может быть либо 0, либо 1.




Содержание  Назад  Вперед