15 апр. 2013 г.

Перевод с десятичной в шестнадцатеричную систему счисления


Во время знакомства с такими языками программирование как 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 до тех пор пока результат деления не будет меньше восьми.

Комментариев нет:

Отправить комментарий

 

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07