Подтвердить что ты не робот

Как превратить шестнадцатеричный в десятичный с помощью мозга?

Открытие калькулятора для такого крошечного материала кажется мне неприятным, и я твердо верю в то, что "чем больше вы знаете, тем лучше!" поэтому здесь я спрашиваю, как преобразовать шестнадцатеричные в десятичные.

До этого момента я использую следующую формулу:

Hex:        Decimal:
12          12+6
22          22+2*6
34          34+3*6
49          49+4*6
99          99+9*6

Я запутываюсь, когда я перехожу на более высокие цифры, такие как C0 или FB

Какова формула (мозг, не функциональная), которую вы используете?

4b9b3361

Ответ 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.