Во время знакомства с
такими языками программирование как
Assembler пришлось познакомиться мне с
десятичной, а так же шестнадцатеричной
системой счисления, но так как в колледже
в момент ознакомления с этими системами
счисления я был занят какими то другими
занятиями, пришлось сейчас обучиться
пониманию и умению перевода с
шестнадцатеричную в десятичную и на
оборот, систему счислений.
Так как для меня это
понимание оказалось затруднительно
приведу часть советов и применений для
таких как я, кому понимание перевода
дается сложно.
Хочу поблагодарить всеобще свою жену за подробный ликбез по поводу понимания перевода ибо она сначала взяла "руль в свои руки" и воочно ознакомилась, а потом уже и мне объяснила принцип перевода.
Данный пример подходит
для перевода как с шестнадцатеричной
так и с восьмеричной системы счисления
в десятичную.
!Двоичная система
переводиться иным способом.
Имеем число 7FFF (что
является шестнадцатеричным числом и
это число, забегу на перед 32767 в десятичной
системе), а теперь формула:
73F2F1F016(означает,
что это шестнадцатеричное число) =
F*160+F*161+F*162+7*163=15*1+15*16+15*256+7*4096=3276710(в
десятичной системе)
Заметка!!!В шестнадцатеричной системе : A = 10, B = 11, C = 12, D = 13, E = 14,
F = 15 160 степени (любое число в
0 степени ровно 1)(0,1,2,3...т.д.) – обозначает
номер положения цифры/буквы в общем числе (это не правило, а просто для упрощенного понимания)
Теперь переведем
полученное десятичное число назад в
шестнадцатеричное.
Для этого нам надо
делить это число на 16 до той поры пока
остаток от деления будет равен меньше
16, а остаток после каждого деления и
будет элементом в шестнадцатеричном
числе, причем особенность!, первый остаток
от деления будет последним элементом
числа, а последний – первым, соответственно
результат записываем задом на перед, а
вот и пример:
3276710/16=2047,9375,
но нам нужно целое число, что бы найти
остаток от деления:
32767-16*2047=15 (15 это первый остаток от деления и записываем
мы его шестнадцатеричной цифрой/буквой (F) !Смотрим заметку выше
2047/16=127,9375
(не забываем,
что нужно целое число)
Ищем
второй остаток от деления: 2047-16*127=15
(F)
127/16=7
последнее
число деления, но перед ним должен
следовать последний остаток от деления,
что высчитываем ниже
127-16*7=15
(F)
Все
данные высчитаны и записываем по
очередности задом на перед найденные
значения:
7FFF
Добавлю,
что с десятичной в восьмеричную числа
переводятся за таким же методом только
делим на 8 до тех пор пока результат
деления не будет меньше восьми.