Как превратить шестнадцатеричный в десятичный с помощью мозга?
Открытие калькулятора для такого крошечного материала кажется мне неприятным, и я твердо верю в то, что "чем больше вы знаете, тем лучше!" поэтому здесь я спрашиваю, как преобразовать шестнадцатеричные в десятичные.
До этого момента я использую следующую формулу:
Hex: Decimal:
12 12+6
22 22+2*6
34 34+3*6
49 49+4*6
99 99+9*6
Я запутываюсь, когда я перехожу на более высокие цифры, такие как C0 или FB
Какова формула (мозг, не функциональная), которую вы используете?
Ответы
Ответ 1
Если вы считаете, что шестнадцатеричная база 16, ее на самом деле довольно просто:
Начните с наименее значащей цифры и поработайте над наиболее значимым (справа налево) и умножьте цифру с увеличением мощности на 16, затем суммируйте результат.
Например:
0x12 = 2 + (1 * 16) = 18
0x99 = 9 + (9 * 16) = 153
Затем помните, что A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15
Итак,
0xFB = 11 + (15 * 16) = 251
Ответ 2
Это не формула, которая даже не похожа на формулу...
Формула:
X * 16 ^ y, где X - номер, который вы хотите преобразовать, а y - позиция для числа (справа налево).
Итак, если вы хотите конвертировать DA145 в десятичный, это будет..
(5 * 16 ^ 0) + (4 * 16 ^ 1) + (1 * 16 ^ 2) + (10 * 16 ^ 3) + (13 * 16 ^ 4)
И вы должны помнить, что письмо:
A - 10
B - 11
C - 12
D - 13
E - 14
F - 15
Ответ 3
Я почти прекратил это делать, когда обнаружил, что шестнадцатеричные числа, с которыми я работал, были 32-битными. Не очень весело там.
Для меньших чисел я (в конце концов) запомнил некоторые паттерны: 10 = 16, 20 = 32, 40 = 64, 80 = 128 (потому что 100 = 256, а 80 на один бит меньше). 200 = 512 Я помню из-за какой-то машины, которую я использовал, размер страницы которой был 512 (больше не помню, какая машина!). 1000 = 4096 потому что это другой размер страницы машины.
также 64 = 100, 32 = 50, B8 = 200
Это обо всем. Помимо этого, я добавляю.
Ответ 4
Для записи ваш мозг использует функциональный метод поиска ответа. Здесь функция, которую мой мозг использует, чтобы найти значение шестнадцатеричного числа:
- Разделите шестнадцатеричное число на отдельные цифры.
- Преобразуйте каждую цифру в это десятичное значение (так что 0-9 останется неизменным, A - 10, B - 11 и т.д.).
- Начиная с самой правой цифры, умножьте каждое значение на 16 ^ X, где X - это расстояние от самой правой цифры (поэтому самая правая цифра равна 16 ^ 0 или 1, далее 16 ^ 1 или 16, следующая составляет 16 ^ 2, или 256 и т.д.).
- Добавьте все значения вместе.
Ответ 5
Запомните десятичные значения 20h, 40h и т.д., до E0h. (Я полагаю, вы уже знаете 100 часов.)
Затем получите десятичные значения, если другие числа, добавив или вычитая число от 1 до 16.
Ответ 6
Десятичное значение будет
20h = 0x16^0 + 2x16^1 = 0x1 + 2x16 = 0 + 32 = 32
в десятичной системе обозначений или (32)10
.
В 40h
в hexa мы будем иметь 64
в десятичном значении, для EOH
мы будем иметь 224
в десятичной форме.
Ответ 7
При определении десятичного значения определенного индекса в слове, обобщенного для всех баз:
b^i*n
где b - база, я - индекс слова, а n - числовое значение в индексе. Помните это, помня, что b, i, n = bin = short для двоичного кода.
Примеры:
для base2 (двоичный) 1 000, получая значение, в котором находится 1:
b = base, т.е. base2: b = 2
i = 0 индекс в слове, т.е. 1000, 1 находится в 3-м индексе, я = 3
n = число, указанное в индексе, то есть 1000, 3-й индекс равен 1, n = 1
so, 2 ^ 3 * 1 = 8
для base10 (десятичный) 9 00, получив значение, где находится 9:
b = 10, я = 2, n = 9: 10 ^ 2 * 9 = 100 * 9 = 900
для base16 (шестнадцатеричный) 0x0 f 0, получая значение, где находится f:
b = 16, я = 1, n = 15 (0-9, a-f, f = 15): 16 ^ 1 * 15 = 16 * 15 = 240
Обратите внимание, что это можно использовать для определения значения каждого индекса в слове, тогда каждое значение можно суммировать для определения полного значения слова.
например. 1001, слева направо (порядок не имеет значения при суммировании):
(2 ^ 3 * 1 = 8) + (2 ^ 2 * 0 = 0) + (2 ^ 1 * 0 = 0) + (2 ^ 0 * 1 = 1) = 9
Ответ 8
Я не нашел ничего из этого полезного, поэтому вот мой способ: превратить его в два набора двоичных чисел для представления каждой буквы, затем взять целое двоичное представление и преобразовать в десятичное число
Пример: AB
A/B
= 1010/1011 в двоичном
= 171 (128 + 0 + 32 + 0 + 8 + 0 + 2 + 1) в десятичном виде
Ответ 9
Вот еще один метод, который не использует степени 16 и может быть выполнен карандашом и бумагой:
Начните с крайней левой цифры. Умножьте его на 16 и добавьте к нему цифру второго слева.
Затем умножьте результат на 16 и добавьте к нему третью слева цифру. И так далее.
Например, преобразование 0x20A5
в десятичное:
2 * 16 + 0 = 32
32 * 16 + 10 = 522 (remember that A is 10 decimal)
522 * 16 + 5 = 8357
И результат преобразования составляет 8,357.