Советы и лайфхаки

Е в 16 системе счисления – Шестнадцатеричная система счисления — Википедия

Содержание

Шестнадцатеричная система счисления — WiKi

Шестнадцатеричная система счисления — позиционная система счисления по целочисленному основанию 16. В качестве цифр этой системы счисления обычно используются цифры от 0 до 9 и латинские буквы от A до F. Буквы A, B, C, D, E, F имеют значения 1010, 1110, 1210, 1310, 1410, 1510 соответственно.

Индо-арабская
Арабская
Тамильская
Бирманская
Кхмерская
Лаосская
Монгольская
Тайская
Восточноазиатские
Китайская
Японская
Сучжоу
Корейская
Вьетнамская
Счётные палочки
Алфавитные
Абджадия
Армянская
Ариабхата
Кириллическая
Греческая
Грузинская
Эфиопская
Еврейская
Акшара-санкхья
Другие
Вавилонская
Египетская
Этрусская
Римская
Дунайская
Аттическая
Кипу
Майяская
Эгейская
Символы КППУ
2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 60
Нега-позиционная
Симметричная
Фибоначчиева
Единичная (унарная)

Применение

Широко используется в низкоуровневом программировании и компьютерной документации, поскольку в современных компьютерах минимальной адресуемой единицей памяти является 8-битный байт, значения которого удобно записывать двумя шестнадцатеричными цифрами. Такое использование началось с системы IBM/360, где вся документация использовала шестнадцатеричную систему, в то время как в документации других компьютерных систем того времени (даже с 8-битными символами, как, например, PDP-11 или БЭСМ-6) использовали восьмеричную систему.

В стандарте Юникода номер символа принято записывать в шестнадцатеричном виде, используя не менее 4 цифр (при необходимости — с ведущими нулями).

Шестнадцатеричный цвет — запись трёх компонентов цвета (R, G и B) в шестнадцатеричном виде.

Способы записи

В математике

В математике основание системы счисления принято указывать в десятичной системе в нижнем индексе. Например, десятичное число 1443 можно записать как 1443

10 или как 5A316.

В языках программирования

В разных языках программирования для записи шестнадцатеричных чисел используют различный синтаксис:

  • В Ада и VHDL такие числа указывают так: «16#5A3#».
  • В Си и языках схожего синтаксиса, например, в Java, используют префикс «0x». Например, «0x5A3».
  • В некоторых ассемблерах используют букву «h», которую ставят после числа. Например, «5A3h». При этом, если число начинается не с десятичной цифры, то для отличия от имён идентификаторов (например, констант) впереди ставится «0» (ноль): «0FFh» (25510)
  • Другие ассемблеры (AT&T, Motorola), а также Паскаль и некоторые версии Бейсика используют префикс «$». Например, «$5A3».
  • В ассемблерах для IBM mainframe (Assembler F, Assembler 2, Assembler H) используется запись X'xx..xx'. Например X'05A3'.
  • Некоторые иные платформы, например ZX Spectrum в своих ассемблерах (MASM, TASM, ALASM, GENS и т. д.) использовали запись #5A3, обычно выровненную до одного или двух байт: #05A3.
  • Другие версии Бейсика, например Turbo Basic, используют для указания шестнадцатеричных цифр сочетание «&h» или «&H» перед числом. Например, «&h5A3».
  • В Unix-подобных операционных системах (и многих языках программирования, имеющих корни в Unix/linux) непечатные символы при выводе/вводе кодируются как 0xCC, где CC — шестнадцатеричный код символа.

Перевод чисел из одной системы счисления в другую

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

Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа.

Например, требуется перевести шестнадцатеричное число 3A5 в десятичное. В этом числе 3 цифры. В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16:

3A516 = 3·162+10·161+5·160=
= 3·256+10·16+5·1 = 768+160+5 = 93310

При переводе чисел, следует помнить, что в шестнадцатеричной системе счисления: A=10; B=11; C=12; D=13; E=14; F=15.

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

Для перевода многозначного двоичного числа в шестнадцатеричную систему нужно разбить его на тетрады справа налево и заменить каждую тетраду соответствующей шестнадцатеричной цифрой. Для перевода числа из шестнадцатеричной системы в двоичную нужно заменить каждую его цифру на соответствующую тетраду из нижеприведённой таблицы перевода.


Например:

0101101000112 = 0101 1010 0011 = 5A316

Таблица перевода чисел

0hex = 0dec = 0oct 0 0 0 0
1hex = 1dec = 1oct 0 0 0 1
2hex = 2dec = 2oct 0
0
1 0
3hex = 3dec = 3oct 0 0 1 1
4hex = 4dec = 4oct 0 1 0 0
5hex = 5dec = 5oct 0 1 0 1
6hex = 6dec = 6oct 0 1 1 0
7hex = 7dec = 7oct 0 1 1 1
8hex = 8dec =
10oct
1 0 0 0
9hex = 9dec = 11oct 1 0 0 1
Ahex = 10dec = 12oct 1 0 1 0
Bhex = 11dec = 13oct 1 0 1 1
Chex = 12dec = 14oct 1 1 0 0
Dhex = 13dec = 15oct 1 1 0 1
Ehex = 14dec = 16oct
1 1 1 0
Fhex = 15dec = 17oct 1 1 1 1

См. также

Ссылки

ru-wiki.org

Шестнадцатеричная система счисления - это... Что такое Шестнадцатеричная система счисления?

Системы счисления в культуре
Индо-арабская система счисления
Арабская
Индийские
Тамильская
Бирманская
Кхмерская
Лаоская
Монгольская
Тайская
Восточноазиатские системы счисления
Китайская
Японская
Сучжоу
Корейская
Вьетнамская
Счётные палочки
Алфавитные системы счисления
Абджадия
Армянская
Ариабхата
Кириллическая
Греческая
Эфиопская
Еврейская
Катапаяди
Другие системы
Вавилонская
Египетская
Этрусская
Римская
Аттическая
Кипу
Майская
Позиционные системы счисления
Десятичная система счисления (10)
2, 3, 4, 5, 6, 7, 8, 9, 12, 16, 20, 60
Нега-позиционная система счисления
Симметричная система счисления
Смешанные системы счисления
Фибоначчиева система счисления
Непозиционные системы счисления
Единичная (унарная) система счисления
Список систем счисления

Шестнадцатеричная система счисления (шестнадцатеричные числа

) — позиционная система счисления по целочисленному основанию 16.

Обычно в качестве шестнадцатеричных цифр используются десятичные цифры от 0 до 9 и латинские буквы от A до F для обозначения цифр от 1010 до 1510, то есть (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F).

Применение

Широко используется в низкоуровневом программировании и компьютерной документации, поскольку в современных компьютерах минимальной единицей памяти является 8-битный байт, значения которого удобно записывать двумя шестнадцатеричными цифрами. Такое использование началось с системы IBM/360, где вся документация использовала шестнадцатеричную систему, в то время как в документации других компьютерных систем того времени (даже с 8-битными символами, как, например, PDP-11 или БЭСМ-6) использовали восьмеричную систему.

В стандарте Юникода номер символа принято записывать в шестнадцатеричном виде, используя не менее 4 цифр (при необходимости — с ведущими нулями).

Шестнадцатеричный цвет — запись трёх компонент цвета (R, G и B) в шестнадцатеричном виде.

Способы записи

В математике

В математике основание системы счисления принято указывать в десятичной системе в нижнем индексе. Например, десятичное число 1443 можно записать как 1443

10 или как 5A316.

В языках программирования

В разных языках программирования для записи шестнадцатеричных чисел используют различный синтаксис:

  • В Ада и VHDL такие числа указывают так: «16#5A3#».
  • В Си и языках схожего синтаксиса, например, в Java, используют префикс «0x». Например, «0x5A3».
  • В некоторых ассемблерах используют букву «h», которую ставят после числа. Например, «5A3h». При этом, если число начинается не с десятичной цифры, то для отличия от имён идентификаторов (например, констант) впереди ставится «0» (ноль): «0FFh» (25510)
  • Другие ассемблеры (AT&T, Motorola), а также Паскаль и некоторые версии Бейсика используют префикс «$». Например, «$5A3».
  • Некоторые иные платформы, например ZX Spectrum в своих ассемблерах (MASM, TASM, ALASM, GENS и т. д.) использовали запись #5A3, обычно выровненную до одного или двух байт: #05A3.
  • Другие версии Бейсика используют для указания шестнадцатеричных цифр сочетание «&h». Например, «&h5A3».
  • В Unix-подобных операционных системах (и многих языках программирования, имеющих корни в Unix/linux) непечатные символы при выводе/вводе кодируются как 0xCC, где CC — шестнадцатеричный код символа.

В электронных калькуляторах

Б3-34 и ему подобные используют «-», «L», «C», «Г», «E» « » (space) на их экране.

Перевод чисел из одной системы счисления в другую

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

Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа.

Например, требуется перевести шестнадцатеричное число 5A3 в десятичное. В этом числе 3 цифры. В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16:

5A316 = 3·160+10·161+5·162
= 3·1+10·16+5·256 = 3+160+1280 = 144310

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

Для перевода многозначного двоичного числа в шестнадцатеричную систему нужно разбить его на тетрады справа налево и заменить каждую тетраду соответствующей шестнадцатеричной цифрой. Для перевода числа из шестнадцатеричной системы в двоичную нужно заменить каждую его цифру на соответствующую тетраду из нижеприведенной таблицы перевода.


Например:

0101101000112 = 0101 1010 0011 = 5A316

Таблица перевода чисел

0hex = 0dec = 0oct 0 0 0 0
1hex = 1dec = 1oct 0 0 0 1
2hex = 2dec = 2oct 0 0 1 0
3hex = 3dec = 3oct 0 0 1 1
4hex = 4dec = 4oct 0 1 0 0
5hex = 5dec = 5oct 0 1 0 1
6hex = 6dec = 6oct 0 1 1 0
7hex = 7dec = 7oct 0 1 1 1
8hex = 8dec = 10oct 1 0 0 0
9hex = 9dec = 11oct 1 0 0 1
Ahex = 10dec = 12oct 1 0 1 0
Bhex = 11dec = 13oct 1 0 1 1
Chex = 12dec = 14oct 1 1 0 0
Dhex = 13dec = 15oct 1 1 0 1
Ehex = 14dec = 16oct 1 1 1 0
Fhex = 15dec = 17oct 1 1 1 1

См. также

Ссылки

dic.academic.ru

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

В повседневной жизни мы используем счёт, основанный на десятичной системе счисления. Что это значит? Это значит, что все числа, которыми мы пользуемся, отображаются с помощью всего лишь 10 символов или цифр. Они знакомы нам с детства: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Например, запись числа «девятьсот шестьдесят восемь» состоит из символов, входящих в указанный набор: 968. Так можно отобразить любое число.

Но есть и другие системы счисления. Например, двоичная. Здесь для записи любого числа используется набор всего из двух символов-цифр: 0 и 1. Чтобы записать в этой системе десятичное число 13, понадобятся четыре цифры: 1101. Указанный фокус можно проделать с любым десятичным числом, записав его в виде последовательности символов, входящих в определённый набор. Этот набор является своего рода алфавитом, из букв которого строятся слова-числа.

Свод правил, по которым можно производить те или иные действия с числами, записанными с использованием символов из такого алфавита (сложение, вычитание, умножение, деление и т. д. ), и называют системой счисления (с. с.). А количество всех символов, входящих в набор-алфавит, называют основанием с. с. При записи числа в такой системе место, на котором находится каждая цифра в нём, будет её разрядом. Разряды же нумеруются справа налево от 0 и до бесконечности.

Какие бывают системы счисления

На самом деле, существует бесчисленное множество с. с. Например, количество позиционных с. с., к которым относятся системы с натуральным основанием, бесконечно. Потому что, каким бы огромным числом ни было основание, всегда можно выразить любое число в данной системе счисления. Главное, чтобы хватило символов для его записи. Например, для записи чисел в системе счисления с основанием 666 понадобится алфавит, включающий в себя ровно 666 символов-букв или, если хотите, цифр.

Таким образом, теоретически можно использовать позиционные с. с. с любым натуральным основанием. Но на практике мы используем лишь небольшое их количество. К ним относятся: двоичная, троичная, восьмеричная, десятичная, двенадцатеричная, шестнадцатеричная и шестидесятеричная с. с.

Двоичная используется в программировании, информатике и дискретной математике, десятичная — во всех сферах жизни, где есть необходимость считать и измерять, шестнадцатеричная — также используется в информатике и программировании (особенно, в низкоуровневом, где используются языки ассемблеры), а также в компьютерной документации, шестидесятеричная — в счёте и измерении времени и углов (в частности, географических координат).

Кроме упомянутых, есть и другие системы, не относящиеся к позиционным. Это смешанные и непозиционные с. с., которые мы здесь рассматривать не будем.

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

Итак, как уже было упомянуто, любое число в позиционной системе с основанием N можно представить последовательностью символов из набора, состоящего из N цифр и букв. В шестнадцатеричной системе таким набором будут цифры от 0 до 9 и латинские буквы A, B, C, D, E, F, ​итого — 16 символов.

Чтобы сделать перевод из десятичной в шестнадцатеричную систему, вовсе не понадобится калькулятор, если вы хотите научиться делать это сами, вручную. Итак, запаситесь терпением и… вперёд!

Возьмём любое число X, записанное в десятичной с. с., целая часть которого [X] равна P, а дробная часть {X} равна Q. Если X<0, то знак «минус» вначале нужно отбросить, а в конце снова приписать, во избежание путаницы. Далее, следуя алгоритмам 1 и 2, вы получите из Х шестнадцатеричный вид.

Алгоритм 1

Перевод целого десятичного числа в шестнадцатеричное

  1. Разделите P на 16. У вас получатся: частное P0, как результат деления, и остаток от деления R0.
  2. Если P0≠0, то разделите P0 на 16. У вас получится частное P1 и остаток R1. Если P0=0, то переходите к пункту 4.
  3. Продолжайте производить деление, как в пунктах 1 и 2. У вас будут получаться пары чисел (Pi, Ri), где i=0, 1, 2,…, k.
  4. Если частное от деления станет равным нулю, то процесс деления прекращается. Все полученные остатки Ri запишите в последовательности, начиная с последнего. У вас получится ряд Rk,…, R2, R1, R0. Если среди остатков Ri есть числа, большие 9, то для их обозначения используйте буквы латинского алфавита: 10 — А, 11 — В, 12 — С, 13 — D, 14 — E, 15 — F. Полученная последовательность Rk…R2 R1 R0 будет шестнадцатеричной формой записи десятичного числа Р, что записывается так: Р (10)=Rk…R2 R1 R0 (16).

Алгоритм 2

Перевод дробного десятичного числа в шестнадцатеричное

  1. Умножьте Q<1 на 16. В полученном результате выделите целую S1 и дробную Q1 части.
  2. Если Q1≠0, то умножьте Q1 на 16. В полученном результате снова выделите целую S2 и дробную Q2 части. Если Q1=0, то перейдите к пункту 4.
  3. Продолжайте производить умножение, как в пунктах 1 и 2. У вас получатся пары чисел (Qj, Sj), где j=1, 2, 3,…, n.
  4. Если дробная часть результата умножения станет равной нулю, то процесс умножения прекращается. Все полученные числа Sj запишите в последовательности, начиная с первого. У вас получится ряд S1, S2, S3,…, Sn. Если среди Sj есть числа, большие 9, то для их обозначения используйте латинские буквы: 10 — А, 11 — В, 12 — С, 13 — D, 14 — E, 15 — F. Полученная последовательность S1 S2 S3… Sn будет 16-ичной формой записи 10-ичного числа Q, что записывается так: Q (10)=S1 S2 S3… Sn (16).

Как перевести число из шестнадцатеричной системы счисления в десятичную

Согласно одной алгебраической теореме, любое число Y, записанное в N-ичной с. с., можно представить в виде:

Y (N)=Rk•N^k+…Ri•N^i+…+R3•N 3 +R2•N 2 +R1•N 1 +R0•N 0 +S1•N^(-1)+S2•N^(-2)+S3•N^(-3)+…+Sj•N^(-j)+…+Sn•N^(-n) =Rk…Ri…R2 R1 R0, S1 S2 S3… Sj… Sn=X (10).

В этом выражении коэффициенты N^i (i=0…k) и N^(-j) (j=1…n) называются весовыми коэффициентами разрядов, Riи Sj — цифрами N-ичного числа, i — номером разряда в целой части R, (-j) — номером разряда в дробной части S N-ичного числа Y (R=[Y], S={Y}).

Справа в этом выражении стоит результат сложения всех весовых коэффициентов, умноженных на цифры соответствующих разрядов N-ричного числа Y, который представлен в виде 10-ичного числа Х.

Пользуясь этой теоремой, мы легко сможем переводить шестнадцатеричные числа в десятичные. Для этого нужно просто в приведённую выше формулу подставить N=16. В результате получим следующий алгоритм.

Алгоритм 3

Способ перевода из 16-ричной системы в 10-ичную

  1. Пусть задано 16-ричное число Y (16), имеющее в целой части k+1 цифр, а в дробной — n цифр. Номера разрядов в целой части принимают значения от 0 до k. Умножьте каждую его цифру, начиная с первой перед запятой, на 16 в степени, равной номеру разряда этой цифры. Полученные произведения сложите. Результатом будет целая часть Y в десятичном виде — P=[X].
  2. Умножьте теперь каждую цифру числа Y (16), начиная с первой цифры, стоящей после запятой, на 16 в степени, равной отрицательному номеру разряда этой цифры. Номера разрядов в дробной части идут от -1 до -n. Полученные произведения сложите. Результатом будет дробная часть Y в десятичном виде — Q={X}.
  3. Сложите целую и дробную части Y в десятичном виде. Вы получите результат — десятичное число X (10)=Y (16).

Примеры

1. Перевести 1237 (10) в систему с основанием 16.

Решение. Последовательно деля 1237 на 16, мы получим следующие остатки: 5, 13 и 4 (см. алгоритм 1). Чтобы записать 1237 (10) в 16-ричной форме, запишем указанные остатки в обратном порядке, заменив 13 на букву D. Получим: 1237 (10)=4D5 (16). Чтобы убедиться в правильности перевода, произведём проверку (см. алгоритм 3): 4D5 (16)=4•16²+13•16¹+5=1024+208+5=1237 (10).

2. Перевести 0,07080078125 (10) в 16-ричный вид.

Решение. Последовательно умножая 0,07080078125 на 16, отбрасывая целые части получаемых произведений, получим следующий ряд: 1, 2, 2 (см. алгоритм 2). Чтобы записать 0,07080078125 (10) в шестнвдцатиричной форме, запишем указанные цифры в прямом порядке. Получим: 0,07080078125 (10)=0,122 (16). Чтобы убедиться в правильности перевода, сделаем проверку (см. алгоритм 3): 0,122 (16)=1•(1/16¹)+2•(1/16²)+2•(1/16³)=0,0625+0,0078125+0,00048828125= 0,07080078125 (10).

Видео

Из видео вы узнаете, как правильно перевести из шестнадцатеричной системы в двоичную.

liveposts.ru

Шестнадцатеричная система счисления

Для написания программ на Ассемблере, необходимо разобраться с шестнадцатеричной системой счисления. Ничего сложного в ней нет. Мы используем в жизни десятичную систему. Уверен, что Вы все ее знаете, поэтому я постараюсь объяснить шестнадцатеричную систему, проводя аналогию с десятичной.

Итак, в десятичной системе если мы к какому-нибудь числу справа добавим нуль, то это число увеличится в 10 раз. Например: 1 х 10 = 10; 10 х 10 = 100; 100 х 10 = 1000 и т.д. В этой системе мы используем цифры от 0 до 9, т.е. десять разных цифр (собственно, поэтому она и называется десятичная).

В шестнадцатеричной системе мы используем, соответственно, шестнадцать "цифр". Я специально написал слово "цифр" в кавычках, т.к. в ней используются не только цифры. Да и в самом деле как так? Объясняю: от 0 до 9 мы считаем так же, как и в десятичной, а вот дальше будет так: A, B, C, D, E, F. Число F, как не трудно посчитать, будет равно 15 в десятичной системе (см. Таблицу 1).

Таблица 1. Десятичная и шестнадцатеричная системы счисления.

Десятичное число

0 1 2 3 4 ... 8 9 10 11 12 13 14 15 16 17

Шестнадцатеричное число

0 1 2 3 4 ... 8 9 A B C D E F 10 11

Десятичное число

26 27 28 29 30 ... 158 159 160 161 162 ... 254 255 256 257

Шестнадцатеричное число

1A 1B 1C 1D 1E ... 9E 9F A0 A1 A2 ... FE FF 100 101

Т.о., если мы к какому-нибудь числу в шестнадцатеричной системе добавим справа нуль, то это число увеличится в 16 раз.

Пример 1

  • 1 х 16 = 10;
  • 10 х 16 = 100;
  • 100 х 16 = 1000 и т.д.

Вы смогли отличить в Примере 1 шестнадцатеричные числа от десятичных? А из этого ряда: 10, 12, 45, 64, 12, 8, 19? Это могут быть как шестнадцатеричные, так и десятичные. Для того, чтобы не было путаницы, и компьютер смог бы однозначно отличить одни числа от других, в Ассемблере принято после шестнадцатеричного числа ставить символ h или H (H - это сокращение от англ. hexadecimal (шестнадцатеричное). Для краткости его иногда называют просто Hex). А после десятичного ничего не ставить. Т.к. числа от 0 до 9 в обоих системах имеют одинаковые значения, то числа, записанные как 5 и 5h одно и тоже.

Т.о. Пример 1 (см. выше) правильнее записать шестнадцатеричные числа будет так:

  • 1 х 16 = 10h;
  • 10h х 16 = 100h;
  • 100h х 16 = 1000h и т.д.

Либо так:

  • 1h х 10h = 10h;
  • 10h х 10h = 100h;
  • 100h х 10h = 1000h

Для чего нужна шестнадцатеричная система - мы рассмотрим в последующих главах. А в данный момент для нашего примера программы, который будет рассмотрен ниже, нам необходимо знать о существовании шестнадцатеричных чисел.

Итак, подведем итог. Шестнадцатеричная система счисления состоит из 10 цифр (от 0 до 9) и 6 букв латинского алфавита (A, B, C, D, E, F). Если к какому-нибудь числу в шестнадцатеричной системе добавим справа нуль, то это число увеличится в 16 раз. Очень важно уяснить данную тему, так как мы будем постоянно использовать ее при написании программ.

Теперь немного о том, как я буду строить примеры на Ассемблере. Не совсем удобно приводить их сплошным текстом в книге, поэтому сперва будет идти сам код программы с пронумерованными строками, а сразу же после него - объяснения и примечания.

Примерно так:

(01)mov ah,9
(02)mov al,8
(15)mov dl,5Ah

 

learnprogramm.ucoz.ru

Шестнадцатеричная система счисления

Шестнадцатеричная система счисления

Шестнадцатеричная система счисления – это позиционная система счисления с основанием 16.

Шестнадцатеричная система счисления используется для упрощенной записи двоичных чисел.

Рассмотрим пример.

Пусть имеется двоичное число длиной в один байт:

10101111

Разобьем это число на две равные части (полубайты):

1010 и 1111

Каждому полубайту ставим в соответствие шестнадцатеричное число:

A и F

т.е. наше исходное двоичное число равно AF в шестнадцатеричной форме.

Вот в чем назначение шестнадцатеричной системы счисления: число в примере записано в двоичной системе счисления с помощью 8 двоичных цифр, а в шестнадцатеричной – с помощью двух.

Шестнадцатеричная система счисления используется для упрощенной записи двоичных чисел. Как мы получили такой результат?

Имеется 16-ть шестнадцатеричных цифр:

0, 1, 2, 3, 4, 5, 6, 7,
8, 9, a, b, c, d, e, f

им соответствуют десятичные числа:

0, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15

Рассмотрим полубайт

1111

переведем его в десятичную форму:

1 * 23 + 1 * 22 + 1 * 21 + 1 * 20 = 15

15-ти в шестнадцатеричном счислении соответствует F.

Теперь другой полубайт:

1010

переведем его в десятичную форму:

1 * 23 + 0 * 22 + 1 * 21 + 0 * 20 = 10

10-ти в шестнадцатеричном счислении соответствует A.

Итак, двоичному числу 10101111 соответствует шестнадцатеричное AF.

Ещё пример. Пусть имеется двоичное число:

10

Получим его шестнадцатеричное представление. Шестнадцатеричной цифре соответствует один полубайт, а в примере только два бита. Чтоб получить полубайт добавим слева два незначащих нуля:

0010

Мы получили четыре бита, а это и есть полубайт. Переведем его в десятичную форму:

0 * 23 + 0 * 22 + 1 * 21 + 0 * 20 = 2

Десятичной двойке в шестнадцатеричном счислении соответствует 2.

Итак, двоичному числу 10 соответствует шестнадцатеричное 2.

Чтобы отличать шестнадцатеричные числа от других прибавляют букву H к записи числа, например:

2H


www.sbp-program.ru

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

Visual Basic с нуля. Перевод из шестнадцатеричной системы счисления в десятичную.
Если ты, мой уважаемый друг еще не столкнулся с необходимостью перевода в шестнадцатеричную систему и обратно, то рано или поздно, это произойдет. Я не хочу говорить о том, что именно шестнадцатеричная система является в программировании главной, это и так ясно. С ней постоянно сталкивается даже обычный пользователь, например, при определении RGB цвета во всех приличных программах. А уж человеку, поставившему на свой компьютер Visual Basic и сам бог велел.
При описании флагов или объявлении констант мы постоянно пользуемся именно шестнадцатеричным представлением числа, не говоря о том, что сканирование и поиск данных в двоичных файлах вообще без этой системы невозможен. Поэтому я считаю своим долгом сказать следующее: в шестнадцатеричной системе 16 цифр (это не открытие). Последние шесть из них представляются латинскими буквами A, B, C, D, E и F. Представление чисел в шестнадцатиричной форме (и на всякий случай в двоичной) показано в таблице:

Десятичная

Шестнадцатеричная

Двоичная

0

0

0000

1

1

0001

2

2

0010

3

3

0011

4

4

0100

5

5

0101

6

6

0110

7

7

0111

8

8

1000

9

9

1001

10

A

1010

11

B

1011

12

C

1100

13

D

1101

14

E

1110

15

F

1111

Чтобы явно задать число в шестнадцатеричном виде, надо перед числом поставить символы &H. Например, оператор
b=&h25
присваивает переменной b значение 21 в десятичном представлении.
Для перевода в шестнадцатеричное представление в VB имеется функция Hex:
переменная= Hex (число)
где число - любое строковое или числовое выражение. Если число не целое, то оно округляется до ближайшего целого,
Эта функция возвращает (обратите внимание) строковое(!) шестнадцатеричное представление числа до 8 знаков. Если число имеет недопустимое значение (Null ), то функция возвращает пустое значение. Если число является пустым значением (Empty), то функция возвращает ноль.
Ну тут и так все ясно и не для этого я пишу эту статейку. А пишу я ее вот для чего.
Иногда возникает необходимость преобразовать шестнадцатеричное число в десятичное. Для этого существует определенный алгоритм. Допустим нам надо преобразовать число A20D14 в десятичное. Это можно сделать, используя формулу:

A20D14= (10*16^5)+(2*16^4)+(0*16^3)+(13*16^2)+(1*16^1)+(4*16^0)=10620180

Т. е. мы получаем сумму произведений из шестнадцатеричной цифры, представленой в десятичном виде, умноженную на 16 (основание системы счисления) в степени "позиция шестнадцатиричной цифры справа" минус 1. Этот алгоритм легко реализовать программно. Удобнее это оформить функцией в стандартном модуле, с тем, чтобы в проекте пользоваться ей так же как и функцией Hex. Содержимое модуля может выглядеть приблизительно так:

Option Explicit
'Объявим функцию, где в heximal мы будем передавать наше шестнадцатеричное число
Function ConvertDec(heximal) As Long
'объявим две переменные
'одну для шестнадцатеричной цифры числа
Dim Simvol As String
'вторую для соответствующей ему десятичной цифры
Dim DesChislo As Long
'а так же переменную для цикла
Dim x As Long
'обнулим
ConvertDec = 0
'переберем все цифры шестнадцатеричного числа
'и каждой поставим в соотвествие десятичную
For x = 1 To Len(heximal)
Simvol = Mid(heximal, x, 1)
If UCase(Simvol) = "A" Then
DesChislo = 10
ElseIf UCase(Simvol) = "B" Then
DesChislo = 11
ElseIf UCase(Simvol) = "C" Then
DesChislo = 12
ElseIf UCase(Simvol) = "D" Then
DesChislo = 13
ElseIf UCase(Simvol) = "E" Then
DesChislo = 14
ElseIf UCase(Simvol) = "F" Then
DesChislo = 15
Else
DesChislo = Val(Simvol)
End If
'накапливаем в нашей функции результат
ConvertDec = ConvertDec + DesChislo * 16 ^ (Len(heximal) - x)
Next x
'вот и все
End Function

Теперь мы можем на форме проекта разместить четыре TextBox'а и сделать в Text1 и Text2 перевод чисел в шестнадцатеричное представление и наоборот соответственно.

Private Sub Text1_Change()
If Text1 <> "" Then Text3 = Hex(Text1) Else Text3 = ""
End Sub

Private Sub Text2_Change()
If Text2 <> "" Then Text4 = ConvertDec(Text2) Else Text4 = ""
End Sub

Скачать это все можно вверху страницы.

Copyright © 2005 4us


Сайт создан в системе uCoz

vbzero.narod.ru

III. Перевод чисел из двоичной системы счисления в 8, 16 системы и наоборот

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 1

 

Тема: Перевод чисел в различные системы счислений.

 

Цель: Приобретение навыков преобразования чисел при их переводах в различные системы счисления

 

Время: 2 часа Место проведения: Аудитория

план ПРАКТИЧЕСКОГО ЗАНЯТИЯ

1. Вводная часть мин
2. Основная часть мин
  Теоретическая часть: Изучение методического материала мин
  Практическая часть: выполнение задания по вариантам мин
3. Заключительная часть: Подведение итогов, выдача заданий для самостоятельного изучения и отработки. мин

 

В результате проведения практического занятия студенты должны

знать:- основные определения;

- алгоритмы перевода чисел в различные системы счисления;

 

Уметь:- переводить числа в(из) десятичную систему счисления;

- переводить числа из двоичной системы счисления в 8(16) и наоборот;

Литература:

 

1. Андреева Е.В., Фалина И.Н. Системы счисления и компьютерная арифметика. Изд. 2-е. – М.: Лаборатория Базовых Знаний, 2000 г. – 248 с.: ил.

2. Фомин С.В. Системы счисления, М.: Наука, 1987.

3. Выгодский «Справочник по элементарной математике»

4. Приложение «Первое сентября» Информатика. Спец. выпуски №42, 1995 г.; №7, 1997 г.; №36, 1998

УКАЗАНИЯ ПО ПРОВЕДЕНИЮ ПРАКТИЧЕСКОГО ЗАНЯТИЯ

Перед проведением занятия преподаватель обязан подготовить условия для проведения занятий и убедиться в соблюдении мер техники безопасности, обеспечить порядок на рабочем месте, подготовить класс к письменной проверке.

После проверки наличия студентов в соответствии с классным журналом, объявления темы, цели и порядка проведения занятий преподаватель проводит устную или письменную проверку готовности студентов к данному занятию. Письменная проверка производится в кабинете по контрольным карточкам, включающим 2 вопроса из заранее выданного студентам задания, устная - на месте проведения занятий путем постановочных вопросов из того же задания.

По окончанию контрольного опроса преподаватель приступает к изложению учебного материала, поочередно раскрывая содержание вопросов в соответствии с планом занятий. При этом преподаватель выделяет наиболее важный учебный материал, указывает на необходимость ведения письменных записей.



В заключительной части преподаватель производит разбор занятия, объявляет полученные студентами оценки, выдает задание на самостоятельную работу. Ставит задачи по подготовке предстоящего практического занятия. Полученные оценки за данное практическое занятие учитываются при выставлении итоговой оценки по дисциплине.

 

 

организационно-методические указания по проведению практического занятия

1. Вводная часть.Проверить готовность класса к практическому занятию. Объявить тему, цель и основные задачи занятия.

Основная часть

I. Перевод чисел в десятичную систему счисления

 

Для того чтобы перевести число из любой системы счисления в десятичную, поступают следующим образом:

1) нумеруют разряды числа справа налево, начиная с нулевого;

2) вычисляют сумму произведений степеней основания системы счисления и цифр числа. Такая запись называется расширенной записью числа.

Запись чисел в каждой из систем счисления с основанием p означает сокращенную запись выражения

 

Общая форма представления расширенной записи числа:

 

an-1 pn-1 + an-2 pn-2+ ... + a1 p1 + a0 p0 + a-1 p-1 + ... + a-m p-m, (1.3.1)

 

где ai - цифры системы счисления; n и m - число целых и дробных разрядов, соответственно.

Пример

Перевести двоичное число 10111012 в десятичную систему счисления.

Решение.

Пронумеруем разряды числа справа налево, начиная с нулевого. Вычислим сумму произведений степеней основания системы счисления и цифр числа. Получим:

Ответ: 10111012 = 9310.

 

Пример

  -1 =1*23+1*22+0*21+1*20+1*2-1
,

Ответ:10111012=13,210

Таблица степеней числа 2 в 10-ичной и 8-ичной системах.

Степени двойки Десятичное представление Восьмеричное представление
20
21
22
23
24
25
26
27
28
29
210
211
212
Запись степеней двойки с исполь-зованием десятич-ной системы Запись чисел в десятичной системе, то есть с помощью цифр этой системы: 0,1,2,3,4,5,6,7,8,9 Запись чисел в восьмерич-ной системе, с помощью цифр этой системы: 0,1,2,3,4,5,6,7[M1]

II. Перевод чисел из десятичной системы счисления

 

Для того чтобы перевести число из десятичной системы счисления в любую, поступают следующим образом: число делят с остатком на основание системы счисления до тех пор, пока делимое не станет меньше делителя.

Пример

Перевести десятичное число 56110 в пятеричную систему счисления.

Решение.

Используем правило перевода чисел из десятичной системы счисления в произвольную систему счисления. Разделим число 561 с остатком на основание системы счисления, т.е. на 5. Получим:

Ответ: 56110 = 42215.

Задание 2

Перевести число из десятичной системы счисления (А) в следующие системы счисления числа(g).

A = 80941, g = 7; 13

A = 62519, g = 5; 11

A = 50179, g = 9; 12

A = 83016, g = 14; 3

A = 76534, g = 12; 6

III. Перевод чисел из двоичной системы счисления в 8, 16 системы и наоборот

Для перевода двоичного числа в 8 (16) систему счисления поступают следующим образом: двоичную запись числа разбивают на группы вправо и влево от точки по 3 (4) цифры в каждой. Затем каждую группу цифр переводят в 8 (16) систему. В крайних группах, если двоичных цифр оказалось меньше 3 (4), добавляют незначащие нули.

Для обратного перевода каждую цифру числа в 8 (16) системе заменяют группой из 3 (4) двоичных цифр.

Пример

1. Перевести двоичное число 10111001,001112 в:

а) восьмеричную систему;

б) шестнадцатеричную систему.

2. Перевести числа 35,28 и А8,3416 в двоичную систему счисления.

Решение.

1. Воспользуемся правилами перевода чисел из двоичной системы счисления в восьмеричную и шестнадцатеричную системы:

а) 010.111.001,001.1102 = 271,168 ;

б) 1011.1001,0011.10002 = B9,3816 .

2. 35,28 = 11.101,0102;

А8,3416 = 1010.1000,0011.01002 = 1010.1000,0011.012 .

Задание 2

IV. Преобразования чисел в системах с основаниями, кратными степеням 2: (2)↔(4)↔(8)↔(16) (без участия десятичной системы)

 

При выполнении преобразований используем двоичные эквиваленты цифр 4-ичной, 8-ичной и 16-ичной систем счисления.

(2)↔(4).

Цифра 4-ичной системы счисления Двоичный эквивалент

(2)↔(8).

Цифра 8-ичной системы счисления Двоичный эквивалент

(2)↔(16).

Цифра 16-ичной системы счисления Двоичный эквивалент
A
B
C
D
E
F
Пример 1. Преобразовать число 110011010101(2) в 4-ичную, 8-ичную, 16-ичную системы. План решения. а) выделяем в записи данного числа справа налево двойки, тройки, четвёрки двоичных цифр; б) заменяем выделенные группы двоичных цифр цифрами 4-ичной, 8-ичной, 16-ичной систем счисления соответственно. Результат:
110011010101(2) = 303111(4)

 

110011010101(2) = 6325(8)

 

110011010101(2) = CD5(16)

 

Пример 2. Преобразовать число 562(8) из 8-ичной системы в 2-ичную. Решение. Заменим каждую цифру восьмеричного числа 562(8) её двоичным эквивалентом и получим 562(8) = 101 110 010(2).
5 6 2 (8) = 101 110 010(2)

 

Пример 3. Преобразовать число A8C(16) из 16-ичной системы в 4-ичную. Решение. Запишем вначале данное число в двоичной системе счисления, а затем преобразуем в четверичную. Заменим каждую цифру шестнадцатеричного числа A8C(16) её двоичным эквивалентом и получим A8C(16) = 1010 1000 1100(2).  
A 8 C (16) = 1010 1000 1100(2)

 

 

Теперь разобьём двоичную запись данного числа на пары двоичных символов справа налево и заменим каждую пару её четверичным эквивалентом.

 

101010001100(2)=22 20 30(4)

 

 

Таким образом,

A8C(16) = 22 20 30(4).

Пример 4. Преобразовать число 6725(8) из 8-ичной системы в 16-ичную. Решение. Запишем вначале данное число в двоичной системе счисления, а затем преобразуем в шестнадцатеричную. Заменим каждую цифру восьмеричного числа 6725(8) её двоичным эквивалентом и получим
6725(8) = 110 111 010 101(2)

 

6725(8) = 110111010101(2).

Теперь разобьём двоичную запись данного числа на четвёрки двоичных символов справа налево и заменим каждую такую четвёрку её шестнадцатеричным эквивалентом.

 

110111010101(2) = DD5(16)

 

 

Таким образом,

6725(8) = DD5(16).

 

 

 

megaobuchalka.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *