Другие языки программирования и технологии

Распишите пожалуйста как перевtcnb "10001101" из BINa в HEX. Только БЕЗ помощи калькулятора

Делишь двоичное представление на тетрады (т. е. по 4 знака) справа налево.. . Если в последней тетраде не хватает цифр до 4, слева дописываются нули.. . А затем по эти тетрады заменяются на соответствующие им символы 16-ричной записи числа:

0000 - 0
0001 - 1
0010 - 2
0011 - 3
0100 - 4
0101 - 5
0110 - 6
0111 - 7
1000 - 8
1001 - 9
1010 - A
1011 - B
1100 - C
1101 - D
1110 - E
1111 - F

10001101(b)=8D(h)
Серж Туронок
Серж Туронок
23 519
Лучший ответ
Универсальный способ перевода из любой системы счисления в любую другую следующий:
1) переводим в 10-ную;
2) переводим в любую другую.

А именно:

1) Сначала переводим из любой в десятичную. Число двоичное, поэтому основание системы счисления — 2. Нумеруем все цифры двоичного числа справа налево, начиная с нуля и производим преобразование по формуле NP * 2 ^ P (очередная P-тая цифра числа, умноженная на основание системы счисления, то есть 2, в степени номера позиции этой цифры в числе — P), то есть:
P: 76543210
N: 10001101
получаем 1 * 2 ^ 0 + 0 * 2 ^ 1 + 1 * 2 ^ 2 + 1 * 2 ^ 3 + 0 * 2 ^ 4 + 0 * 2 ^ 5 + 0 * 2 ^ 6 + 1 * 2 ^ 7, что равно:
1 * 1 + 0 * 2 + 1 * 4 + 1 * 8 + 0 * 16 + 0 * 32 + 0 * 64 + 1 * 128, что равно:
1 + 0 + 4 + 8 + 0 + 0 + 0 + 128, что равно 141.

2) Теперь переводим из десятичной в 16-ричную. Это немного посложнее.
Нужно делить число на 16 и записывать остаток от деления нацело, затем вычитать результат и снова делить на 16...
141 / 16 = 8 целых и сколько-то там десятых.. . 16 * 8 = 128, 8 запоминаем.. .
141 - 128 = 13
13 на 16 уже не поделится, поэтому 13 оставляем так.
Получаются остатки: 8 13.
В шестнадцитеричной системе счисления используется 16 цифр: 0123456789ABCDEF.
8 — это 8, а 13 — это D, поэтому получается шестнадцатеричное число 8D.
Разбиваешь двоичный код на тетрады (4 цифры) начиная с младшего разряда (т. е. с права на лево) , дополнив старшии разряды недостающими нулями, и по таблице приведенной в вышестоящем ответе записываешь хекс число. пример:
было 1101010110
1) разбиваем на тетрады:
11 0101 0110
2) дополняем нулями:
0011 0101 0110
3) находим по таблице соответствующие значения:
3 5 6
4) записываем результат: 1101010110 (bin) = 356 (hex)

Для Oct (восьмеричной) разбиваем не на тетрады а на триады (по три)
Empty Name
Empty Name
1 442