Site Loader

Содержание

Как перевести шестнадцатеричный код в двоичный?

Первое определение: UTF-8 кодирует код Юникода-указывает на последовательность от 1 до 6 байт.

0x30C0 используйте шестнадцатеричную нотацию для представления 2 байтов. Предполагая, что байт высокого порядка появляется первым в последовательности байтов, это эквивалентно 0x30, за которым следует 0xC0. Вы можете написать это в Python 3:

>>> seq = b"\x30\xC0"
>>> seq
b'0\xc0'

Предполагая, что это может быть закодированный поток байтов UTF-8, мы могли бы попробовать метод decode :

>>> seq.decode("UTF-8")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 1: invalid start byte

??- Не работает. Последовательность не является правильной UTF-8.


Давайте сделаем то же самое для следующей последовательности:

>>> seq = b"\x30\x3C"
>>> seq.decode("UTF-8")
'0<'

Ах, ах! Ни одно исключение. Это правильное UTF-8, соответствующее строке из 2 кодовых точек 0< .


В-третьих, это интересно:

>>> seq = b"\xE0\xAD\xAA"
>>> seq.decode("UTF-8")
'୪'
>>> len(seq.decode("UTF-8"))
1

Эти 3 байта используются для кодирования только одной кодовой точки. Но что это за символ … Хум … «code point»? Python имеет функцию ord , чтобы знать, что:

>>> ord(seq.decode("UTF-8"))
2922

Код 2922 (десятичные). То есть в шестнадцатеричном…

>>> "{:04X}".format( ord(seq.decode("UTF-8")) )
'0B6A'

Таким образом, последовательность байтов 0xE0 0xAD 0xAA кодирует как UTF-8 кодовую точку Юникода U+0B6A . Но что это за персонаж? Python встроить модуль для запроса базы данных Unicode:

>>> import unicodedata
>>> unicodedata.name( seq.decode("UTF-8") )
'ORIYA DIGIT FOUR'

Так оно и есть: это кодовая точка, соответствующая цифре 4 в системе письма Ория .

Быстро учимся считать в двоичной и шестнадцатеричной системе

Введение

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


Переход от десятичной системы к двоичной

Первый случай – считаем от десятичной системы к двоичной. Основное, что нужно помнить в данном случае – это ряд степеней двойки (1, 2, 4, 8, 16, 32, 64, 128 и т.д.). Даже если его вы не знаете, то ничего не стоит каждое следующее число умножать на двойку. Так как младшие разряды идут справа, а старшие – слева, то будем их записывать в обратном порядке справа налево. 

Для примера будем переводить число 115. Дальше смотрим, если значение разряда помещается в число, то вычитаем из него это значение и ставим в этом разряде 1, иначе ставим 0.

Обратный перевод еще проще – нужно просуммировать все значения разрядов, которые отмечены единичками: 64+32+16+2+1 = 115.

Переход к шестнадцатеричной системе

Теперь давайте разберемся с шестнадцатеричной системой. Имея ввиду то, что количество чисел, которые кодируются тетрадой (4 бита) и одним шестнадцатеричным символом совпадают, то соответственно каждый символ кодирует одну двоичную тетраду.

В результате получили число 0х73. Главное помнить, что А = 10, B = 11, C = 12, D = 13, E = 14, F = 15.

Если есть потребность перевести десятичное число в шестнадцатеричное или наоборот, то здесь проще всего будет сначала перевести число в двоичное представление, а затем только в шестнадцатеричное или десятеричное соответственно.

В итоге мы научились быстро переводить числа из одной системы счисления в другую. Главное, что нужно помнить — степени двойки и уметь хорошо складывать и вычитать. Детальнее о машинной математике вы можете узнать во втором уроке курса C# Стартовый.

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

Text To Hex / Hex To Text


Описание: Text в Hex / Hex в Text — преобразование текста в шестнадцатеричные коды его символов и обратно. Работает для текста в кодировках Windows-1251, UTF-16. Декодирует UTF-8 текст с кириллицей, который при закодировании в JSON переводится штатной php функцей json_encode() в \uXXXX кодировку.

В математике и вычислениях шестнадцатеричная (также базовая 16, или шестнадцатеричная) — это позиционная система счисления с основанием 16. Он использует шестнадцать различных символов, чаще всего символы 0-9 для представления значений от нуля до девяти, и A, B, C, D, E, F (или альтернативно a, b, c, d, e, f) для представления значений от десяти до пятнадцати.

Шестнадцатеричные цифры широко используются разработчиками компьютерных систем и программистами. Поскольку каждая шестнадцатеричная цифра представляет собой четыре двоичные цифры (биты), она позволяет более удобное для человека представление двоичных кодированных значений. Одна шестнадцатеричная цифра представляет собой кусочек (4 бита), который составляет половину октета или байта (8 бит). Например, один байт может иметь значения в диапазоне от 00000000 до 11111111 в двоичном виде, но это может быть более удобно представлено как 00 до FF в шестнадцатеричном виде.

В контексте, не относящемся к программированию, индекс обычно используется, чтобы дать rix, например, десятичное значение 10,995 было бы выражено в шестнадцатеричном виде как 2AF316. Несколько обозначений используются для поддержки шестнадцатеричного представления констант в языках программирования, обычно включающих префикс или суффикс. Префикс «0x» используется в языках C и связанных языках, где это значение может быть обозначено как 0x2AF3.


Ресурсы:

Двоичная восьмеричная шестнадцатеричная системы счисления


 

Двоичная система счисления

Для представления чисел в микропроцессоре используется двоичная система счисления.
При этом любой цифровой сигнал может иметь два устойчивых состояния: «высокий уровень» и «низкий уровень». В двоичной системе счисления для изображения любого числа используются две цифры, соответственно: 0 и 1. Произвольное число x=anan-1..a1a0,a-1a-2…a-m запишется в двоичной системе счисления как

x = an·2n+an-1·2n-1+…+a1·21+a0·2

0+a-1·2-1+a-2·2-2+…+a-m·2-m

где ai — двоичные цифры (0 или 1).

Восьмеричная система счисления

В восьмеричной системе счисления базисными цифрами являются цифры от 0 до 7. 8 единиц младшего разряда объединяются в единицу старшего.

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

В шестнадцатеричной системе счисления базисными цифрами являются цифры от 0 до 15 включительно. Для обозначения базисных цифр больше 9 одним символом кроме арабских цифр 0…9 в шестнадцатеричной системе счисления используются буквы латинского алфавита:

1010 = A16      1210 = C16      1410

= E16
1110 = B16      1310 = D16      1510 = F16.

Например, число 17510 в шестнадцатеричной системе счисления запишется как AF16. Действительно,

10·161+15·160=160+15=175

В таблице представлены числа от 0 до 16 в десятичной, двоичной, восьмеричной и шестнадцатеричной системах счисления.

ДесятичнаяДвоичнаяВосьмеричнаяШестнадцатеричная
00 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

Двоично-восьмеричные и двоично-шестнадцатеричные преобразования

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

Три разряда двоичной системы счисления реализуют все возможные комбинации восьмеричных цифр в двоичной системе счисления: от 0 (000) до 7(111). Чтобы преобразовать двоичное число в восьмеричное, нужно объединить двоичные цифры в группы по 3 разряда (триады) в две стороны, начиная от разделителя целой и дробной части. При необходимости слева от исходного числа нужно добавить незначащие нули. Если число содержит дробную часть, то справа от него тоже можно добавить незначащие нули до заполнения всех триад. Затем каждая триада заменяется восьмеричной цифрой.

 
Пример: Преобразовать число 1101110,012 в восьмеричную систему счисления.

Объединяем двоичные цифры в триады справа налево. Получаем

001 101 110,0102 = 156,28.

Чтобы перевести число из восьмеричной системы в двоичную, нужно каждую восьмеричную цифру записать ее двоичным кодом:

156,28 = 001 101 110,0102.

 
Четыре разряда двоичной системы счисления реализуют все возможные комбинации шестнадцатеричных цифр в двоичной системе счисления: от 0 (0000) до F(1111). Чтобы преобразовать двоичное число в шестнадцатеричное, нужно объединить двоичные цифры в группы по 4 разряда (тетрады) в две стороны, начиная от разделителя целой и дробной части. При необходимости слева от исходного числа нужно добавить незначащие нули. Если число содержит дробную часть, то справа от нее тоже нужно добавить незначащие нули до заполнения всех тетрад. Затем каждая тетрада заменяется шестнадцатеричной цифрой.

Пример: Преобразовать число 1101110,112 в шестнадцатеричную систему счисления.

Объединяем двоичные цифры в тетрады справа налево. Получаем

0110 1110,11002 = 6E,C16.

Чтобы перевести число из шестнадцатеричной системы в двоичную, нужно каждую шестнадцатеричную цифру записать ее двоичным кодом:

6E,C16 = 0110 1110,11002.


Назад: Представление данных и архитектура ЭВМ

преобразует между шестнадцатеричными и десятичными числами

Шестнадцатеричная и десятичная системы счисления — определение:

Система чисел может быть понята как упорядоченный набор специфических символов для представления количественного поведения или свойства любой системы. До сих пор вы могли слышать о двоичной, десятичной и шестнадцатеричной системах счисления. Одно число может быть представлено во всех этих системах. Единственное различие между этими системами чисел — радикс или основание или количество цифр. Мы знаем, что для представления числа нам необходимо символическое представление, известное как цифры. Общее отсутствие отдельных цифр в любой числовой системе известно как радикс или основание этой числовой системы.

Может возникнуть общий вопрос, что мы можем иметь много значений для radix и, следовательно, много no. системы чисел, так почему мы используем двоичные, десятичные или шестнадцатиричные больше всего. Почему не любая другая система? Если мы попытаемся понять это, то увидим, что десятичная система счисления имеет 10-ю основу, поэтому в этой системе ни одна цифра не идеально подходит для представления на наших десяти пальцах. Поэтому мы так долго используем десятичную систему счисления. Говоря о двоичной системе счисления, с возрастом компьютеров возникла необходимость понимать двоичную систему счисления, так как компьютеры могут работать только с двоичными цифрами. Для создания связи между двоичными и десятичными числами была введена шестнадцатеричная система счисления. Минимальное количество битов в двоичной системе, необходимое для обозначения десятичной величины, равно 4, но с 4 битами мы можем обозначить 16 различных цифр, и именно так появилась шестнадцатеричная система. Использование 4 битов для обозначения 10 цифр было пустой тратой остальных 6 цифр, и это потеря в эффективности памяти, а также в вычислениях. С помощью шестнадцатеричных чисел мы можем представлять более крупные цифры с меньшим количеством цифр.

Система десятичных чисел:

Десятичная система счисления — это система счисления с радиксом (базой), равным 10. В любой системе счисления есть две вещи: номинал и место. Рассмотрим число 245, можно записать это число во взвешенном виде как:

245 = (2 x 100) + (4 x 10) + (5 x 1) В приведенном выше примере мы умножаем номинальную стоимость 2 на вес места, который равен 100, чтобы получить значение 100.

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

Как следует из названия, эта система счисления основана на базе 16. В этой системе счисления мы имеем 16 различных цифр, которые составляют 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Эта система счисления является предпочтительной для большинства компьютерных систем хранения и программирования, так как она идеально подходит для десятичной и двоичной систем счисления.

Как преобразовать шестнадцатеричные числа в десятичные:

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

Шаг 1: Отметьте индекс каждой цифры в шестнадцатеричном числе.

шестнадцатеричный7 8 4 6 F
Индекс4 3 2 1 0

Шаг 2: Замените цифры на десятичные эквивалентные значения.

Шестнадцатеричное значение в десятичной дроби7 8 4 6 15
Индекс4 3 2 1 0

Правильное отображение между цифрами и десятичными значениями является следующим:

Шаг 3: Теперь умножьте каждую цифру шестнадцатеричного числа с 16 поднятыми до силы их соответствующего индекса, чтобы получить значение места в десятичной дроби.

Стоимость места F F = 15 x 1 = 15
Стоимость места F 6 = 6 x 16 = 64
Стоимость места F 4 = 4 x 16 x 16 = 1024
Стоимость места F 8 = 8 x 16 x 16 x 16 = 32768
Стоимость места F 7 = 7 x 16 x 16 x 16 x 16 = 458752

Шаг 4: Теперь добавьте все значения мест, чтобы получить десятичный эквивалент.

Десятичный эквивалент = 458752 + 32768 + 1024 + 64 + 15 = 492623

Преобразование десятичной в шестнадцатеричную:

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

Шаг 1: Разделите заданное десятичное число на 16 и запишите значение остатка и коэффициента.

462 = (28 x 16) + 14

Шаг 2: Преобразуйте остаток от десятичной цифры в шестнадцатеричную, и эта шестнадцатеричная цифра является первой цифрой нашего шестнадцатеричного числа.

Десятичное 14 = E в шестнадцатеричном формате

Шаг 3: Повторяйте первый и второй шаг по коэффициенту, вычисленному на последнем шаге, до тех пор, пока не получите коэффициент меньше 16.

28 = (1 x 16) + 12

Десять десятых = С в шестнадцатеричном формате

1 = (0 x 16) + 1

Десятичное число 1 = 1 в шестнадцатеричном исчислении

Шаг 4: Теперь, после всего этого процесса, у нас есть три остатка. Первый остаток — это первая цифра шестнадцатеричного числа, а последний остаток — это самый значительный бит нашего шестнадцатеричного числа, таким образом, в данном случае формируется шестнадцатеричное число: Шестнадцатеричное значение десятичной цифры 462 равно 1CE

Опыт использования приложения для конвертации HEX в десятичную систему

Rated 4.9 / 5 based on 51 reviews

Вы можете отправить отзыв после конвертирования файла.

Дневники чайника

Дневники чайника

Системы счисления и устройство памяти.


Второй день

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

Только целые и только положительные.

Возможно, вы проходили эту тему в школе, и кто-то из вас даже что-то помнит, но начинать нужно именно отсюда.

Нас будут интересовать 3 системы счисления — dec, bin, hex.

Десятичная — Decimal (Dec или буква «d»)

Aрабская система — она называется десятичной, потому что в ней используются 10 символов.

0,1,2,3,4,5,6,7,8,9

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

Запомни, юнга! В космосе нет верха, нет низа — это всё условности. И то, что у тебя десять пальцев на руках, это всего лишь исключение. У наших бинарных братьев всего два пальца, они смеются над тобой — урод десятипалый :). У них есть на это право, их больше и они старше. С Бинарниками надо дружить, иначе корабль собьют на подходе к первой же станции.

Двоичная система счисления — Binary (Bin или буква «b»)

Нетрудно догадаться, что двоичная система имеет всего два символа 0 и 1.

Компьютер — это очень простой прибор, в нём есть только выключатели — биты (вкл. =1, выкл. =0).

Понятие Bit, скорее всего, произошло от английских слов Binary — двоичная и Digit — цифра. Но поскольку битов о-о-очень много, биты строятся в байты.

11111111 - это байт
01010101 - и это байт
00000000 - и это тоже байт

Бит может иметь значение 0 или 1.

Байт — это 8 бит, и он может иметь значения от 0000 0000 — ноль, до 1111 1111 — 255 в десятичной системе (пробелы для читаемости). Получается, что у байта 256 значений (всегда считается вместе с нулевым).

биты       dec-цифры     |    биты       dec-цифры
00000001 = 1             |    00001011 = 11
00000010 = 2  !          |    00001100 = 12
00000011 = 3             |    00001101 = 13
00000100 = 4  !          |    00001110 = 14
00000101 = 5             |    00001111 = 15
00000110 = 6             |    00010000 = 16  !
00000111 = 7             |    00010001 = 17
00001000 = 8  !          |    00010010 = 18
00001001 = 9             |    00010011 = 19
00001010 = 10            |    00010100 = 20
И так до 11111111 = 255.

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

Как вы думаете, почему я выделил 2,4,8,16?

Правильно, это «круглые» цифры. В десятичной системе они, конечно, не круглые, но в двоичной получается 10,100,1000,10000. Поэтому десятичная система для компьютерных вычислений не очень подходит. Вместо неё используется…

Шестнадцатиричная система счисления — Hexadecimal (Hex или буква «h»)

Имеет целых 16 символов. Чтоб не придумывать новые символы, в hex используются буквы латинского алфавита.

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F  - это цифры

Я приравняю все hex-символы к десятичным значениям.

h d    h d    h d     h d 
0=0    4=4    8=8     C=12
1=1    5=5    9=9     D=13
2=2    6=6    A=10    E=14
3=3    7=7    B=11    F=15

В этой системе счисления ноль справа прибавляется при умножении на 16 (десятичных).

Лишние нули слева от числа значения не имеют, так же, как и в математике.

Однако если число начинается с буквы (A-F), ноль слева нужен при наборе программ. Иначе как компилятор будет определять, что началось число? А чтобы не путать числа в разных системах и писать при этом коротко, пишут:

d — десятичные значения

01,02,03,04,05,06,07,08,09,10d,11d,12d,13d,14d,15d,16d,17d,18d,19d,20d...

h — шестнадцатиричные значения

01,02,03,04,05,06,07,08,09,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh,10h,11h,12h,13h,14h...

b — двоичные значения

0,1,10b,11b,100b...

Вот примеры:

01   *  16d = 10h     (получается 16d)
10h  *  16d = 100h    (получается 256d)
100h *  16d = 1000h   (получается 4096d)


1    *  10h  = 10h
10h  +  10h  = 20h
10h  *  10h  = 100h
100h +  100h = 200h

10b  *  10b  = 100b

Удобно, правда? А вот так?

10d + 10h = 1Ah или 26d

Неудобно. Поэтому всегда ВСЕ ВЫЧИСЛЕНИЯ ДЕЛАЙТЕ В ОДНОЙ СИСТЕМЕ!

Сам я никогда не перевожу из hex в dec и в bin в уме или на листочке, для этого есть калькулятор. И мне знакома эта растерянность перед новыми цифрами. Но я и не рассчитываю, что стало понятно хоть что-то. Просто вы должны знать, что системы счисления hex & bin существуют. Через месяц практики вы привыкнете к шестнадцатиричной системе как к родной. А вот двоичная будет использоваться только в пределах четырёх байт. На экране монитора мне лишь изредка приходится видеть биты как «01011010», хотя часто их очень не хватает.

Теперь ещё раз про байт.


bin-числа   hex-числа
00001000  = 08
00010000  = 10h
00100000  = 20h
01000000  = 40h
10000000  = 80h
...
11111111b = FFh

В байт умещаются ровно два разряда hex-системы счисления! Именно так мы и будем видеть байты. Вспомните наш нулевой эксперимент:

         байты в hex                     символы в кодировке DOS (Р - русская буква)
90 41 90 41 90 90 41 41 42 43 44       |    РAРAРРAABCD

Теперь вы понимаете, что я имел в виду, сказав: «90 здесь 144». Правильнее было бы сказать 90h = 144d.

Байт это 8 бит, и что самое главное, байт — минимально адресуемая ячейка памяти.

Если нужно прочитать информацию, например, из бита 900, то нам нужно обратиться к 112-му байту и посмотреть в нём бит номер 4.

      | Адрес в байтах    |    Информация в БИТАХ
      |                   |    76543210 - номера бит (разряд)
------|-------------------|-----------------------------------------------
 111d | 0000006F          |    00000000
 112d | 00000070          |    000?0000
 113d | 00000071          |    00000000
 114d | 00000072          |    00000000

Конечно же, в компьютере физически биты не разделяются пробелами. Вся оперативная память, например, — сплошной поток выключателей :).

Но при отображении биты обычно разделяют на:
байты — 8 бит, две hex-цифры, или
тетрады — 4 бита, одна hex-цифра.

Обратите внимание на запись. Мы нумеруем биты справа налево и обязательно от нуля — это стандарт для учебников и документации. Кроме того, нумерация от нуля имеет математический смысл (разряды нужно осознать!).

Хотя так информацию мы видеть практически не будем. Вместо битов везде будут hex-байты, вот так:

        Адрес в байтах    |    Информация в БАЙТАХ
       -------------------|---------------------------------------
        0000006F          |    00
        00000070          |    00
        00000071          |    00
        00000072          |    00

или вот так:

        Адрес в байтах    |    Информация в БАЙТАХ
       -------------------|---------------------------------------
        0000006F          |    00 00 00 00

Здесь вынужден заметить: адреса в файле и адреса в оперативной памяти — это совершенно разные вещи.

Далее по тексту я буду грубо писать: «адрес в памяти», под этими словами мы будем подразумевать часть логического адреса, которую принято называть смещением (offset). В рамках наших уроков смещение — вполне достаточный адрес в памяти. Однако смещение — это не полный логический адрес и называть смещение адресом без оговорок — довольно грубо! В следующем витке мы обязательно разберём адресацию памяти в разных режимах процессора, и там я расскажу, что такое сегмент и смещение.

А сейчас запомните. Когда я пишу: адрес в файле, я подразумеваю номер байта в файле от нуля. И это норма. А вот когда я пишу: адрес в памяти, это значит, что речь идёт о части логического адреса, называемой смещением (тоже от нуля).

Да простят меня профи за такую вольность.

Юнга, после обеда я научу тебя писать дельные программы для вспомогательного бортового оборудования. Ты, конечно, пуст, как первая ступень, и ни черта не понял за сегодня, но у меня нет времени рассусоливать, нас давно ждут.

Первая полезная программа

Что там у нас дальше по учебнику? Этого вам пока не надо… Этого я и сам ещё не знаю… Тут слишком много умностей… Нет, пожалуй, продолжу, как предложил Олег Калашников. Пожалуй, лучший подход для любителей практики.

Эксперимент 01 (prax01.com)

Я по-прежнему подразумеваю, что вы используете WinXP и пример должен работать.

Создайте файл с расширением «com» (напомню в FAR’e — Shift+F4). Назвав файл, напечатайте в нём любую букву или цифру, ну, допустим, «1». Сохраните файл (в FAR’e — Esc).

Нет, это ещё не программа, этот файл выполнять не нужно. Откройте в Hiew’e.

Сейчас вы видите 1, если нажать «F4» (Mode), то, как и в тот раз, вы увидите байт в hex-виде. F4 еще раз покажет дизассемблерный код. Если в файле единица, то выглядеть код будет так:


Адреса    Байты         Имена    Операнды
00000000: 31            xor    [bx][si],ax

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

Предмет, с (или над) которым производится действие, называется операнд.

Операнды в ассемблере для Интел-совместимых процессоров принято разделять запятыми. То есть в некоторых системах или в других языках программирования пишут:
AX xor 44
или вполне может быть такая форма записи:
44,55 xоr AX
Но в x86 ассемблере принято писать так:

xor AX,44

где AX - операнд 1 (он же приёмник), 
  а 44 - операнд 2 (он же источник).

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

В Hiew’e (когда вы видите дизассемблерный код нашего файла) нажмите F3 и затем Enter. Теперь можно набирать программу на ассемблере (символ «1» в файле должен стереться). Каждая инструкция вводится Enter’ом и превращается в строку, если нет явной ошибки. Пробелы нужны только для удобства, поэтому неважно, сколько их. Пишите как хотите, строчными или прописными буквами, но только по-англицки. :)

Вот код программы, его нужно набрать:

mov  ah,9
mov  dx,10Dh
int  21h
mov  ah,10h
int  16h
int  20h

Когда всё напишете, нажмите один раз Esc, чтобы прекратить ассемблирование, и F9, чтобы сохранить файл.

Это был весь код программы, которая должна выводить строку на экран! Круто, правда? Только не хватает самой строки.

Для того, чтоб вписать строку, нужно открыть файл в текстовом редакторе (в FAR’e — F4).

Допишите после всех закорючек (только не сотрите ничего) любую текстовую строку и в конце поставьте знак $.

Это может выглядеть примерно так:

_?_?
_?_?_?_?_Good Day!$

Закорючки будут другие, но вид такой. Сохраните программу. Откройте снова в Hiew’e.


Адреса    Маш.команды Команды Асма      комментарии
          Байты       Имена Операнды   

00000000: B409        mov   ah,009    ; Поместить значение 9 в регистр AH (параметр1)
00000002: BA0D01      mov   dx,0010D  ; Поместить адрес текстовой строки в DX (параметр2)
00000005: CD21        int   021       ; Вызвать подпрограмму, в которой
                                      ; отработает функция вывода текста на экран (AH=09)

00000007: B410        mov   ah,010    ; Поместить значение 10h в регистр AH (параметр1)
00000009: CD16        int   016       ; Вызвать подпрограмму ожидания нажатия клавиши
0000000B: CD20        int   020       ; Подпрограмма завершения

0000000D: 47          inc   di
0000000E: 6F          outsw
0000000F: 6F          outsw
00000010: 64204461    and   fs:[si][61],al
00000014: 7921        jns   000000037  ---X
00000016: 24          and   al,000

Принято так, что после точки с запятой идёт комментарий, просто пояснение для людей. В этом примере я откомментировал все строки кода программы. Только вам от этого пока не легче.

Видите, начиная с адреса в файле 0000000Dh, появились команды, которые вы не писали, это всего лишь строка текста. Её процессор выполнять не будет только потому, что перед строкой текста стоит код завершения (int 20).

Запустите программу (можно из проводника)… Если компьютер с вами поздоровался — я вас тоже поздравляю! Значит, у вас есть шанс научить его делать и более сложные вещи.

Вы увидите окно DOS-приложения с текстом:
Good Day!
Нажатие на любую клавишу вызовет выход из программы.

Если же этого не произошло — не расстраивайтесь. Перепроверьте всё несколько раз, может быть, вы опечатались. Прочитайте «Аннотацию» в последней главе или комментарии. Я пока ничего подобного не написал, но, возможно, когда-нибудь придётся. Ведь у нас нет гарантии, что новые твАрения MS или других «рук» не изменят ситуацию в худшую сторону. Хотя, будем надеяться, что программа заработает и на новых OS’ях и процессорах.

«$» не выводится. Хм, интересно :/ Это условный символ конца строки?

Да, но в windows мы будем использовать нулевой байт (00h) для этой же цели.

Вот, уже получилась полнофункциональная программа для DOS, которая будет работать и в Windows.

Прямо так и вижу следующие «почему»:
Почему mov?
Почему ah?
Почему 9?
И вообще, что это за подпрограммы-прерывания int 16, int 21, int 20.

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

На самом деле вывод строки на экран без специальной DOS-функции ничуть не сложнее. Мы используем именно такой способ из-за того, что он наиболее схож с программированием под Win. Здесь было бы аккуратнее и быстрее выводить на экран без специальной подпрограммы DOS-функций.

Но ДОС в прошлом, а нас ждёт Win32.

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

Мы завтра весь день будем искать ответ на вопрос «Почему ah», так как этот «почему» — самый важный во всём ассемблере. Серьёзно!

Bitfry


Перевод из 16 в буквы. Шестнадцатеричный код

Возникли какие-то трудности и недопонимания с преобразованием чисел из двоичной в шестнадцатеричную систему счисления? Записывайтесь ко мне на индивидуальные уроки по информатике и ИКТ. На своих частных уроках мы с учениками разбираем не только теоретическую часть, но также решаем колоссальное количество различных тематических упражнений.

Нужно знать, что такое двоичная или бинарная система счисления

Прежде чем размышлять о том, как перевести число из 2 в 16, необходимо хорошо понимать, что собою представляют числа в двоичной системе счисления. Напомню, что алфавит бинарной системы счисления состоит из двух допустимых элементов – 0 и 1 . Это означает, что абсолютно любое число, записанное в двоичном виде, будет состоять из набора нулей и единиц. Вот примеры чисел, записанных в бинарном представлении: 10010, 100, 111101010110, 1000001.

Нужно знать, что такое шестнадцатеричная система счисления

С бинарной системой мы разобрались, вспомнили базовые моменты, сейчас поговорим о 16-ричной системе. Алфавит 16-ричной системы счисления состоит из шестнадцати различных знаков: 10 арабских цифр (от 0 до 9) и 6 первых заглавных латинских букв (от «А» до «F»). Это означает, что абсолютно любое число, записанное в шестнадцатеричном виде, будет состоять из знаков вышеприведенного алфавита. Вот примеры чисел, записанных в 16-ричном представлении:

Поговорим об алгоритме преобразования числа из 2-ной в 16-ричную систему счисления

Нам потребуется в обязательном порядке рассмотреть кодировочную таблицу Тетрад. Без применения данной таблицы будет довольно затруднительно оперативно осуществлять перевод чисел из 2 в 16 систему.

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

Таблица Тетрад имеет следующую структуру:

Таблица Тетрад

0000 — 0

0001 — 1

0010 — 2

0011 — 3

0100 — 4

0101 — 5

0110 — 6

0111 — 7

1000 — 8

1001 — 9

1010 — A

1011 — B

1100 — C

1101 — D

1110 — E

1111 — F

Допустим нам требуется преобразовать число 101011111001010 2 в 16-ричную систему. В первую очередь необходимо исходный бинарный код разбить на группы по четыре разряда, причем, что очень важно, разбиение в обязательном порядке следует начинать справа налево.

101 . 0111 . 1100 . 1010

После разбиения мы получили четыре группы: 101, 0111, 1100 и 1010. Особого внимания требует самый левый сегмент, то есть сегмент 101. Как видно, его длина составляет 3 разряда, а необходимо, чтобы его длина равнялась четырем, следовательно, дополним данный сегмент ведущим незначащим нулем:

101 -> 0 101.

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

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

0101 -> 5 0111 -> 7 1100 -> C 1010 -> A

101011111001010 2 = 57СА 16

А сейчас я вам предлагаю ознакомиться с мультимединым решением, в котором показано как преобразуется из бинарного состояния в 16-ричное состояние:

Краткие выводы

В данной небольшой статье мы разобрали тему «Системы счисления: как перевести из 2 в 16 ». Если у вас остались какие-либо вопросы, недопонимания, то звоните и записывайтесь на мои индивидуальные уроки по информатике и программированию. Я предложу вам решить не один десяток подобных упражнений и у вас не останется ни одного вопроса. Вообще, системы счисления – чрезвычайно важная тема, которая образует фундамент, используемый на протяжении всего курса .

1. Порядковый счет в различных системах счисления.

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

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

Поскольку у нас десятичная система счисления, мы имеем 10 символов (цифр) для построения чисел. Начинаем порядковый счет: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Цифры закончились. Мы увеличиваем разрядность числа и обнуляем младший разряд: 10. Затем опять увеличиваем младший разряд, пока не закончатся все цифры: 11, 12, 13, 14, 15, 16, 17, 18, 19. Увеличиваем старший разряд на 1 и обнуляем младший: 20. Когда мы используем все цифры для обоих разрядов (получим число 99), опять увеличиваем разрядность числа и обнуляем имеющиеся разряды: 100. И так далее.

Попробуем сделать то же самое в 2-ной, 3-ной и 5-ной системах (введем обозначение для 2-ной системы, для 3-ной и т.д.):

0000
1111
21022
311103
4100114
51011210
61102011
71112112
810002213
9100110014
10101010120
11101110221
12110011022
13110111123
14111011224
15111112030

Если система счисления имеет основание больше 10, то нам придется вводить дополнительные символы, принято вводить буквы латинского алфавита. Например, для 12-ричной системы кроме десяти цифр нам понадобятся две буквы ( и ):

00
11
22
33
44
55
66
77
88
99
10
11
1210
1311
1412
1513

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

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

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

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

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

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

Для того, чтобы научиться переводить числа из любой другой системы в десятичную, проанализируем привычную нам запись десятичного числа.
Например, десятичное число 325 – это 5 единиц, 2 десятка и 3 сотни, т.е.

Точно так же обстоит дело и в других системах счисления, только умножать будем не на 10, 100 и пр., а на степени основания системы счисления. Для примера возьмем число 1201 в троичной системе счисления. Пронумеруем разряды справа налево начиная с нуля и представим наше число как сумму произведений цифры на тройку в степени разряда числа:

Это и есть десятичная запись нашего числа, т.е.

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

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

4. Перевод из двоичной системы в систему с основанием «степень двойки» (4, 8, 16 и т.д.).

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

Например, Переведем двоичное 1100001111010110 число в восьмеричную систему. Для этого разобьем его на группы по 3 символа начиная справа (т.к. ), а затем воспользуемся таблицей соответствия и заменим каждую группу на новую цифру:

Таблицу соответствия мы научились строить в п.1.

00
11
102
113
1004
1015
1106
1117

Т.е.

Пример 6. Переведем двоичное 1100001111010110 число в шестнадцатеричную систему.

00
11
102
113
1004
1015
1106
1117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F

5.Перевод из системы с основанием «степень двойки» (4, 8, 16 и т.д.) в двоичную.

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

Пример 7. Переведем шестнадцатеричное число С3A6 в двоичную систему счисления.

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

Шестнадцатеричная система счисления (также — шестнадцатеричный код) является позиционной системой счисления с целочисленным основанием 16. Иногда в литературе также используется термин hex (произносится «хекс», сокращение от англ. hexadecimal). Цифрами данной системы счисления принято использовать арабские цифры 0—9, а также первые символы латинского алфавита A—F. Буквы соответствуют следующим десятичным значениями:

  • * A —10;
  • * B —11;
  • * C —12;
  • * D —13;
  • * E — 14;
  • * F — 15.

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

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

Применение . Шестнадцатеричный код широко применяется в низкоуровневом программировании, а также в различных компьютерных справочных документах. Популярность системы обоснована архитектурными решениями современных компьютеров: в них в качестве минимальной единицы информации установлен байт (состоящий из восьми бит) — а значение байта удобно записывать с помощью двух шестнадцатеричных цифр. Значение байта может ранжироваться с #00 до #FF (от 0 до 255 в десятичной записи) — другими словами, используя шестнадцатеричный код , можно записать любое состояние байта, при этом не остаётся «лишних» не используемых в записи цифр.

В кодировке Юникод для записи номера символа используется четыре шестнадцатеричных цифры. Запись цвета стандарта RGB (Red, Green, Blue — красный, зелёный, синий) также часто использует шестнадцатеричный код (например, #FF0000 — запись ярко-красного цвета).

Способ записи шестнадцатеричного кода.

Математический способ записи . В математической записи основание системы записывают в десятичном виде в нижнем индексе справа от числа. Десятичную запись числа 3032 можно записать как 3032 10 , в шестнадцатеричной системе данное число будет иметь запись BD8 16 .

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

* В синтаксисе некоторых разновидностей языка ассемблера используется латинская буква «h», которая ставится справа от числа, например: 20Dh. Если число начинается с латинской буквы, то перед ним ставится ноль, например: 0A0Bh. Это сделано для того, чтобы отличать от констант значения, использующие шестнадцатеричный код ;

* В прочих разновидностях ассемблера, а также в Pascal (и его разновидностях, таких как Delphi) и некоторых диалектах Basic, применяют префикс «$»: $A15;

* В языке разметки HTML, а также в каскадных файлах CSS, для указания цвета в формате RGB с шестнадцатеричной системой записи, используется префикс «#»: #00DC00.

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

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

Двоичная СС

шестнадцатеричная СС

Например, требуется выполнить перевод шестнадцатеричного числа A14: в нём три цифры. Используя правило, запишем его в виде суммы степеней с основанием 16:

A14 16 = 10.16 2 + 1.16 1 + 4.16 0 = 10.256 + 1.16 + 4.1 = 2560 + 16 + 4 = 2580 10

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

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

Таблица тетрад для перевода.

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

Двоичная СС

Восьмеричная СС

Пример перевода из шестнадцатеричной системы в двоичную : A5E 16 = 1010 0101 1110 = 101001011110 2

Пример перевода из двоичной системы в шестнадцатеричную : 111100111 2 = 0001 1110 0111 = 1E7 16

В этом примере количество цифр в исходном двоичном числе не было равным четырём (9), поэтому были добавлены незначащие нули — общее число цифр стало 12.

Автоматический перевод . Быстрый перевод из шестнадцатеричной системы счисления в одну из трёх популярных систем (двоичную, восьмеричную и десятичную), как и обратный перевод, можно выполнить, используя стандартный калькулятор из комплекта поставки ОС Windows. Откройте калькулятор, выберите в меню Вид -> Программист. В данном режиме можно устанавливать систему счисления, используемую в данный момент (см. меню слева: Hex, Dec, Oct, Bin). При этом изменение текущей системы счисления автоматически производит перевод.

Сдающим ЕГЭ и не только…

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

Например, нужно перевести число 810 10 в двоичную систему:

Результат записываем в обратном порядке снизу вверх. Получается 81010 = 11001010102

Если нужно переводить в двоичную систему довольно большие числа, то лестница делений приобретает размер многоэтажного дома. И как тут собрать все единички с нулями и ни одной не пропустить?

В программу ЕГЭ по информатике входят несколько задач, связанных с переводом чисел из одной системы в другую. Как правило, это преобразование между 8- и 16-ричными системами и двоичной. Это разделы А1, В11. Но есть и задачи с другими системами счисления, как например, в разделе B7.

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

Таблица степеней числа 2:

2 12 22 32 42 52 62 72 82 92 10
2481632641282565121024

Она легко получается умножением предыдущего числа на 2. Так, что если помните не все эти числа, остальные нетрудно получить в уме из тех, которые помните.

Таблица двоичных чисел от 0 до 15 c 16-ричным представлением:

0123456789101112131415
0000000100100011010001010110011110001001101010111100110111101111
0123456789ABCDEF

Недостающие значения тоже нетрудно вычислить, прибавляя по 1 к известным значениям.

Перевод целых чисел

Итак, начнем с перевода сразу в двоичную систему. Возьмём то же число 810 10 . Нам нужно разложить это число на слагаемые, равные степеням двойки.

  1. Ищем ближайшую к 810 степень двойки, не превосходящую его. Это 2 9 = 512.
  2. Вычитаем 512 из 810, получаем 298.
  3. Повторим шаги 1 и 2, пока не останется 1 или 0.
  4. У нас получилось так: 810 = 512 + 256 + 32 + 8 + 2 = 2 9 + 2 8 + 2 5 + 2 3 + 2 1 .
Далее есть два способа, можно использовать любой из них. Как легко увидеть, что в любой системе счисления её основание всегда 10. Квадрат основания всегда будет 100, куб 1000. То есть степень основания системы счисления — это 1 (единица), и за ней столько нулей, какова степень.

Способ 1 : Расставить 1 по тем разрядам, какие получились показатели у слагаемых. В нашем примере это 9, 8, 5, 3 и 1. В остальных местах будут стоять нули. Итак, мы получили двоичное представление числа 810 10 = 1100101010 2 . Единицы стоят на 9-м, 8-м, 5-м, 3-м и 1-м местах, считая справа налево с нуля.

Способ 2 : Распишем слагаемые как степени двойки друг под другом, начиная с большего.

810 =

А теперь сложим эти ступеньки вместе, как складывают веер: 1100101010 .

Вот и всё. Попутно также просто решается задача «сколько единиц в двоичной записи числа 810?».

Ответ — столько, сколько слагаемых (степеней двойки) в таком его представлении. У 810 их 5.

Теперь пример попроще.

Переведём число 63 в 5-ричную систему счисления. Ближайшая к 63 степень числа 5 — это 25 (квадрат 5). Куб (125) будет уже много. То есть 63 лежит между квадратом 5 и кубом. Тогда подберем коэффициент для 5 2 . Это 2.

Получаем 63 10 = 50 + 13 = 50 + 10 + 3 = 2 * 5 2 + 2 * 5 + 3 = 223 5 .

Ну и, наконец, совсем лёгкие переводы между 8- и 16-ричными системами. Так как их основанием является степень двойки, то перевод делается автоматически, просто заменой цифр на их двоичное представление. Для 8-ричной системы каждая цифра заменяется тремя двоичными разрядами, а для 16-ричной четырьмя. При этом все ведущие нули обязательны, кроме самого старшего разряда.

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

547 8 =101100111
547

Ещё одно, например 7D6A 16 .

7D6A 16 =(0)111110101101010
7D6A

Переведем в 16-ричную систему число 7368. Сначала цифры запишем тройками, а потом поделим их на четверки с конца: 736 8 = 111 011 110 = 1 1101 1110 = 1DE 16 . Переведем в 8-ричную систему число C25 16 . Сначала цифры запишем четвёрками, а потом поделим их на тройки с конца: C25 16 = 1100 0010 0101 = 110 000 100 101 = 6045 8 . Теперь рассмотрим перевод обратно в десятичную. Он труда не представляет, главное не ошибиться в расчётах. Раскладываем число на многочлен со степенями основания и коэффициентами при них. Потом всё умножаем и складываем. E68 16 = 14 * 16 2 + 6 * 16 + 8 = 3688 . 732 8 = 7 * 8 2 + 3*8 + 2 = 474 .

Перевод отрицательных чисел

Здесь нужно учесть, что число будет представлено в дополнительном коде. Для перевода числа в дополнительный код нужно знать конечный размер числа, то есть во что мы хотим его вписать — в байт, в два байта, в четыре. Старший разряд числа означает знак. Если там 0, то число положительное, если 1, то отрицательное. Слева число дополняется знаковым разрядом. Беззнаковые (unsigned) числа мы не рассматриваем, они всегда положительные, а старший разряд в них используется как информационный.

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

Итак, переведем число -79 в двоичную систему. Число займёт у нас один байт.

Переводим 79 в двоичную систему, 79 = 1001111. Дополним слева нулями до размера байта, 8 разрядов, получаем 01001111. Меняем 1 на 0 и 0 на 1. Получаем 10110000. К результату прибавляем 1, получаем ответ 10110001 . Попутно отвечаем на вопрос ЕГЭ «сколько единиц в двоичном представлении числа -79?». Ответ — 4.

Прибавление 1 к инверсии числа позволяет устранить разницу между представлениями +0 = 00000000 и -0 = 11111111. В дополнительном коде они будут записаны одинаково 00000000.

Перевод дробных чисел

Дробные числа переводятся способом, обратным делению целых чисел на основание, который мы рассмотрели в самом начале. То есть при помощи последовательного умножения на новое основание с собиранием целых частей. Полученные при умножении целые части собираются, но не участвуют в следующих операциях. Умножаются только дробные. Если исходное число больше 1, то целая и дробная части переводятся отдельно, потом склеиваются.

Переведем число 0,6752 в двоичную систему.

0,6752
*2
1,3504
*2
0,7008
*2
1,4016
*2
0,8032
*2
1,6064
*2
1,2128

Процесс можно продолжать долго, пока не получим все нули в дробной части или будет достигнута требуемая точность. Остановимся пока на 6-м знаке.

Получается 0,6752 = 0,101011 .

Если число было 5,6752, то в двоичном виде оно будет 101,101011 .

Шестнадцатеричный преобразователь в двоичный

Чтобы использовать этот инструмент преобразования из шестнадцатеричного в двоичный код , просто введите шестнадцатеричное значение, например 1E, в левое поле ниже, а затем нажмите кнопку «Преобразовать». Таким образом, вы можете преобразовать до 16 шестнадцатеричных символов (максимальное значение 7fffffffffffffff).

Результат преобразования из шестнадцатеричного в двоичное в базовых числах

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

Шестнадцатеричная система (сокращенно шестнадцатеричная) использует число 16 в качестве основания (системы счисления).В системе счисления с основанием 16 используется 16 символов. Это 10 десятичных цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) и первые шесть букв английского алфавита (A, B, C, D, E, F). Буквы используются из-за необходимости представлять значения 10, 11, 12, 13, 14 и 15 каждое в одном символе.

Шестнадцатеричный формат используется в математике и информационных технологиях как более удобный способ представления двоичных чисел. Каждая шестнадцатеричная цифра представляет четыре двоичных цифры; следовательно, шестнадцатеричный — это язык для записи двоичного кода в сокращенной форме.

Четыре двоичных разряда (также называемых полубайтами) составляют полбайта. Это означает, что один байт может нести двоичные значения от 0000 0000 до 1111 1111. В шестнадцатеричном формате они могут быть представлены в более удобном виде, в диапазоне от 00 до FF.

В html-программировании цвета могут быть представлены шестизначным шестнадцатеричным числом: FFFFFF представляет белый цвет, тогда как 000000 представляет черный.

Двоичная система

В двоичной системе счисления использует число 2 в качестве основания (основание). В системе счисления с основанием 2 он состоит только из двух чисел: 0 и 1.

Хотя двоичная система применялась в Древнем Египте, Китае и Индии для различных целей, в современном мире двоичная система стала языком электроники и компьютеров. Это наиболее эффективная система для обнаружения состояния выключения (0) и включения (1) электрического сигнала. Это также основа для двоичного кода, который используется для компоновки данных в компьютерных машинах. Даже цифровой текст, который вы сейчас читаете, состоит из двоичных чисел.

Двоичное число читать проще, чем кажется: это позиционная система; поэтому каждая цифра в двоичном числе возводится в степень двойки, начиная с самого правого с 2 0 .В двоичной системе каждая двоичная цифра относится к 1 биту.

Как преобразовать шестнадцатеричное в двоичное

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

  • Шаг 1 : Запишите шестнадцатеричное число. Если они есть, замените шестнадцатеричные значения, представленные буквами, на их десятичные эквиваленты.
  • Шаг 2 : Каждая шестнадцатеричная цифра представляет четыре двоичных цифры и, следовательно, равна степени двойки.Самая правая цифра равна 2 0 (1), следующая — 2 1 (2), следующая — 2 2 (4), а крайняя левая — 2 3 (8 ). Напишите эти числа (8, 4, 2 и 1) под шестнадцатеричными значениями.
  • Шаг 3 : Определите, какие степени двойки (8, 4, 2 или 1) дают в сумме ваши шестнадцатеричные цифры. Например, если одно из ваших шестнадцатеричных значений 10, это означает, что сумма 8 и 2 дает 10 (4 и 1 не используются). Если ваше шестнадцатеричное число 2, используется только 2; 8, 4 и 1 — нет.
  • Шаг 4 : Запишите 1 под теми 8, 4, 2 и 1, которые используются. Запишите 0 ниже тех, которые не используются.
  • Шаг 5 : Прочтите 1 и 0 слева направо, чтобы получить двоичный эквивалент данного шестнадцатеричного числа.

Давайте применим эти шаги к шестнадцатеричному числу (4FA) 16

Шаг 1:
4 Ф А
4 15 10

Шаг 2:
4 Ф А
4 15 10
8421 8421 8421

Шаг 3:
4 Ф А
4 5 10
8421 8421 8421
(Обратите внимание, что сумма жирных цифр соответствует указанному выше шестнадцатеричному значению.Итак, жирные цифры - 1, а остальные - 0.)

Шаг 4:
4 Ф А
4 15 10
8421 8421 8421
0100 1111 1010

Шаг 5: (4FA)  16  = (10011111010)  2  
Примеры преобразования из шестнадцатеричного в двоичное
Пример 1: (2C1)  16  = (1011000001)  2 
2 С 1
2 12 1
8421 8421 8421
0010 1100 0001

Пример 2: (9DB2)  16  = (1001110110110010)  2 
9 Д Б 2
9 13 11 2
8421 8421 8421 8421
1001 1101 1011 0010
 

Сопутствующие преобразователи: Двоичный преобразователь в шестнадцатеричный

Шестнадцатеричная таблица преобразования двоичной системы

010010 12

010010

010010 00010011

0 93

0

Шестнадцатеричный Двоичный
1 00000001
2 00000010
3 00000011
4 00000100
5 00000101101

101101

7 00000111
8 00001000
9 00001001
A 00001010
B 00001011
0000 C 00001101
E 00001110
F 00001111
10 00010000
11 00010001
14 9010 1 00010100
15 00010101
16 00010110
17 00010111
18 00011000
11 19 0001

0 000

1 00011010
1B 00011011
1C 00011100
1D 00011101
1E 00011110
10 1F11110
10 1F
21 00100001
22 00100010
23 00100011
24 00100100
25 00100101 25 00100101 27 001 00111
28 00101000
29 00101001
2A 00101010
2B 00101011
10 0010 2C01
10 0010 2C01 900
2E 00101110
2F 00101111
30 00110000
31 00110001
32 00110010 34 00110100
35 00110101
36 00110110
37 00110111
38 00111000
38 00111000
00111010
3B 00111011
3C 00111100
3D 00111101
3E 00111110
3F0000
3F0000000000

93

0

01100000

0109310

0109

Шестнадцатеричный Двоичный
41 01000001
42 01000010
43 01000011
44 01000100
45 01000101101

98 900

47 01000111
48 01001000
49 01001001
4A 01001010
4B 0100101110 900 01001101
4E 01001110
4F 01001111
50 01010000
51 01010001101

93

01010001101

900 01010011

54 01010100
55 01010101
56 01010110
57 01010111
58 01011000 01011000
01011010
5B 01011011
5C 01011100
5D 01011101
5E10010

5E 01011110 5E 01011110
61 01100001
62 01100010
63 01100011
64 01100100
651111111110
67 9 0101 01100111
68 01101000
69 01101001
6A 01101010
6B 0110101110 6

93

0110101110 6

9001

01101101
6E 01101110
6F 01101111
70 01110000
71 011100093 0111000931
74 01110100
75 01110101
76 01110110
77 01110111
78111
7810 900 7A 01111010
7B 01111011
7C 01111100
7D 01111101
7E 0111111010 100001

11

0111111010 100001

11

93

1

1

10111110 9001001 1010098101

0

101

11
Шестнадцатеричный Двоичный
81 10000001
82 10000010
83 10000011
84 10000100
85 10000101 86100 86 87 10000111
88 10001000
89 10001001
8A 10001010
8B 10001011
001

0 9

8C 10001101
8E 10001110
8F 10001111
90 10010000
91 10010001
10 10010001
19 10010011
94 10010100
95 10010101
96 10010110
97 10010111
98 10011000
9 10011000
10011010
9B 10011011
9C 10011100
9D 10011101
9E 100111101
100111101
100111101
10100000
A1 10100001
A2 10100010
A3 10100011
A4 10100100
A5
A7 9 0101 10100111
A8 10101000
A9 10101001
AA 10101010
AB AD 10101011
AD 10101011
10101101
AE 10101110
AF 10101111
B0 10110000
B1 101100093
1
B2
B4 10110100
B5 10110101
B6 10110110
B7 10110111
B810
B810

989

BA 10111010
BB 10111011
BC 10111100
BD 10111101
BE 10111110
BF
BF 901
3 CC CC CC 110100 D9

93

0
Шестнадцатеричный Двоичный
C1 11000001
C2 11000010
C3 11000011
C4 11000100
C5 11000101 C5 11000101 C7 11000111
C8 11001000
C9 11001001
CA 11001010
CB 11001011
11001011
11001011
11001101
CE 11001110
CF 11001111
D0 11010000
D1 110100011

93

D1 1101

93

D1 11010011
D4 11010100
D5 11010101
D6 11010110
D7 11010111
D8 11011000
11011010
DB 11011011
постоянного тока 11011100
DD 11011101
DE 11011110
11011
110 DF 11100000
E1 11100001
E2 11100010
E3 11100011
E4 11100100
10 E51
E5
E7 9 0101 11100111
E8 11101000
E9 11101001
EA 11101010
EB 11101011
11101011
EC 9 11101101
EE 11101110
EF 11101111
F0 11110000
F1 11110001
11

1

1

1

1

1

1

11
F4 11110100
F5 11110101
F6 11110110
F7 11110111
F810 11111000
F810 11119111 900 FA 11111010
FB 11111011
FC 11111100
FD 11111101
FE 11111110
31
11

11

1
Система счисления

: как преобразовать шестнадцатеричное, десятичное значение в двоичное и наоборот?

В предыдущей статье мы говорили о том, что такое побитовые операции и почему они важны в информатике.

В большинстве случаев, когда мы делаем что-то с побитовой операцией, нам обычно приходится иметь дело с некоторыми терминами, такими как двоичный (основание 2) и шестнадцатеричный (основание 16). Как вы, наверное, знаете, двоичная система состоит всего из двух цифр 0 и 1, десятичная (основание 10) — это значения от 0 до 9 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) и шестнадцатеричный (основание 16) имеет значения 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

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

Читайте также:

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

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

Предположим, у нас есть десятичное значение 156 (с основанием 10), как мы можем преобразовать его в двоичное число? Во-первых, давайте подготовим бумагу и ручку, потому что они нам понадобятся в данной ситуации.

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

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

Преобразовать двоичное в десятичное

Так что иногда двоичное число бывает действительно громоздким и трудным для понимания. Для большего удобства иногда мы хотим преобразовать двоичное число в десятичное для выполнения некоторых конкретных задач. Так как же нам это сделать? В отличие от преобразования десятичного числа в двоичное, мы должны что-то разделить, все, что нам нужно для преобразования двоичного числа в десятичное, — это записать его на бумагу (снова).Справа налево, начните с 2 от крайнего правого числа, кратного его положительной цифре, затем добавьте к его следующей цифре и увеличьте показатель степени на единицу для каждой степени, наконец просуммируйте все вместе, мы получим десятичное число. Когда читаешь, это так сбивает с толку, так что давайте рассмотрим пример. Мы преобразуем 111000110 (основание 2) в десятичное (основание 10).

Это изображение показывает, как мы можем преобразовать двоичное число в десятичное. Вы можете проверить это значение, а также потренироваться, снова преобразовав его в двоичное, как на первом изображении.

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

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

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

100101

0 900 B

Шестнадцатеричный Двоичный
0 0000
1 0001
2 0010
3 0011
1
5 0101
6 0110
7 0111
8 1000
9 1001
10 A 1011
C 1100
D 1101
E 1110
F 1111

Пример # 1

Преобразовать (4E) 16 в двоичное:

(8) 16 = (1000) 2

(E) 16 = (1110) 2

Так

(8E) 16 = (10001110) 2

Пример # 2

Преобразовать (2A07) 16 в двоичное:

(2) 16 = (0010) 2

(А) 16 = (1010) 2

(0) 16 = (0000) 2

(7) 16 = (0111) 2

Так

(2A07) 16 = (0011101000000111) 2

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

Существует несколько способов преобразования двоичного числа в шестнадцатеричное.Во-первых, используя доступное двоичное число, вы группируете 4 числа в группу справа налево и ищите их значения в таблице выше:

  • Представьте, что у нас есть база значений 2, например: 1010001011001110.
  • Шаг первый, сгруппируйте 4 числа в группу справа налево (в случае, если в последней группе недостаточно 4 цифр, просто добавьте 0 слева, чтобы цифра этой группы равна 4). (1010) (0010) (1100) (1110)
  • Посмотрите на таблицу выше и запишите соответствующие значения слева направо. (1010) = B, (0010) = 2, (1100) = C, (1110) = E
  • Тогда мы получаем желаемый результат в базе 16: B2CE

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

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

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

Точно так же, как мы преобразуем основание 2 в основание 10. Мы можем преобразовать шестнадцатеричное число в десятичное число с точными шагами, например двоичное в десятичное, но вместо 2 из крайней правой цифры нам нужно 16 .Посмотрите на таблицу ниже, чтобы увидеть соответствующие цифры от основания 16 до основания 10:

B
Шестнадцатеричное Десятичное
0 0
1 1
2 2
3 3
4
5 5
6 6
7 7
8 8
9 9
93 A 10
11
C 12
D 13
E 14
F 15

Итак, давайте попробуем сейчас, чтобы увидеть, как это :

4DE5F (основание 16) в десятичной системе => 4 = 4, D = 13, E = 14, 5 = 5, F = 15

4DE5F = 4 x 16⁴ + 13 x 16³ + 14 x 16² + 5 x 16¹ + 15 x 16⁰ = 319071 (основание 10)

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

Таким же образом мы преобразуем десятичное число в двоичное, но вместо деления числа на 2, пока оно не достигнет 0, мы делим это число на 16.Посмотрите на примеры ниже:

В этом примере мы хотим преобразовать десятичное число 4000 в шестнадцатеричное.

Делитель Базовая десятка Остаток Шестнадцатеричный эквивалент
16 4000 X X
1693 0 0 900 16 15 10 A
16 0 15 F

Ответ: FA0 шестнадцатеричный.Помните, мы записываем последний полученный остаток в начале нашего ответа.

Заключение

Из этой статьи мы узнали, как преобразовать десятичное число в двоичное, шестнадцатеричное в двоичное, десятичное в шестнадцатеричное и наоборот. Постарайтесь больше практиковаться, чтобы помнить эти вещи. Таблицы конвертируют числа в числа другого типа, просто вычисляя те, у которых есть мощность основания, которое вы хотите преобразовать. Записываем двоичное число от десятичного числа снизу вверх до напоминания и так остальные.В шестнадцатеричном формате у нас есть 16 значений, A = 10 по основанию 10, B = 11 по основанию 10 и так далее…

▷ Шестнадцатеричный преобразователь в двоичный

Вам нужно преобразовать шестнадцатеричное число в двоичное число ?

Ниже приведен бесплатный преобразователь из шестнадцатеричного в двоичный код , который позволяет преобразовывать шестнадцатеричные числа в их двоичное представление.

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

Результат преобразования из шестнадцатеричного в двоичное в базовых числах

Оцените этот конвертер

Как использовать преобразователь из шестнадцатеричного в двоичный

  1. Введите шестнадцатеричное число в первое поле.
  2. Нажмите кнопку «Преобразовать».
  3. Выходные двоичные числа появятся во втором поле.
  4. При желании вы можете скопировать вывод в буфер обмена или сохранить его как файл на вашем устройстве.
  5. (необязательно) , просмотрите результаты преобразования в основные числа.

Попробуйте также преобразователь двоичного кода в шестнадцатеричный !

ШЕСТИГРАННЫЕ ЧИСЛА

Для справки, вот список первых 255 шестнадцатеричных чисел:

 0 1 2 3 4 5 6 7 8 9 ABCDEF 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF 

Также вы можете проверить первую сотню чисел в двоичном формате.

АЛФАВИТ В ШЕСТИГРАННОЙ И ДВОЙНОЙ ЗАПИСИ, ЗАГЛАВНЫЕ БУКВЫ

0

Письмо Шестнадцатеричное Двоичное
A 41 01000001
B 01000001
B10 4210 42 01000011
D 44 01000100
E 45 01000101
F 46 01000110
G 47100 93 H 48 01001000
I 49 01001001
J 4A 01001010
K 4B 0100101011 01001100
M 4D 010 01101
N 4E 01001110
O 4F 01001111
P 50 01010000
10 Q 93 0101 52 01010010
S 53 01010011
T 54 01010100
U 55 010101010 56100
W 57 01010111
X 58 01011000
Y 59 01011001
Z10 В ШЕСТИГРАННОМ И ДВОИЧНОМ, НИЖНЕМ СЛУЧАЕ

0

0

h
Буква Шестнадцатеричная Двоичная
a 61 01100001
b 01100001
b 0110000111111 01100011
d 64 01100100
e 65 01100101
f 66 01100110
1
1 68 01101000
i 69 01101001
j 6A 01101010
k 6B 011010111 01101100
м 6D 011 01101
n 6E 01101110
o 6F 01101111
p 70 01110000
q 71 0101 72 01110010
s 73 01110011
t 74 01110100
u 75 011101010 v
w 77 01110111
x 78 01111000
y 79 01111001
z109110911091109 преобразовать шестнадцатеричное в двоичное

Шестнадцатеричная или просто шестнадцатеричная система с основанием 16.В двоичном формате используется основание 2. Вы можете испугаться преобразования шестнадцатеричного кода в двоичный, но на самом деле метод довольно прост. Для коротких шестнадцатеричных цифр вам даже не нужен калькулятор — эти преобразования достаточно просты, вы можете делать их в уме. Но вы всегда можете использовать шестнадцатеричный преобразователь в двоичный код , который находится вверху этой страницы.

Кредит видео

Шестнадцать символов

Hex использует всего шестнадцати символов для представления двоичных и десятичных чисел.Если вы читали (или видели) «Марсианин», вы помните, что астронавт Марк Уотни использовал шестнадцатеричные числа для связи с Землей. Это был хороший выбор, потому что шестнадцатеричная система на удивление проста. Если вы уже можете преобразовать десятичное число в двоичное, вы можете преобразовать шестнадцатеричное в двоичное.

Из 0–9 шестнадцатеричные и десятичные числа совпадают . Когда мы достигаем 10, шестнадцатеричный код немного меняет ситуацию, используя текстовые буквы. 10-15 в шестнадцатеричном формате представлены буквами A-F.

Шестнадцатеричная таблица может быть полезна для преобразования шестнадцатеричной системы в двоичную, хотя, если вы будете делать это достаточно часто, вы можете обнаружить, что вы запомнили многое из этого.Имейте в виду, что шестнадцатеричные «числа» могут быть строкой, состоящей только из букв, цифр или их комбинации.

Давайте посмотрим на короткое «число» — 5A — и преобразуем его из шестнадцатеричного в двоичное. Первое, что нам нужно сделать, это разделить 5 и A. Нам нужно найти двоичный эквивалент десятичного числа 5, что вы можете сделать с помощью преобразователя десятичного в двоичный.

Напоминаем, что преобразование десятичного числа в двоичное требует разбиения десятичного числа на суммы степеней двойки.

5 в двоичном формате равно 101. Теперь мы найдем двоичный эквивалент A. Во-первых, нам нужно знать его десятичный эквивалент. Помните, что в шестнадцатеричном формате, когда мы достигли 10, мы перешли на буквы. Итак, мы можем считать A = 10 и преобразовать десятичное число 10 в двоичное, то есть 1010.

Теперь сложите их вместе: 5A в шестнадцатеричном виде — это 1011010 в двоичном.

Вы можете встретить более длинные шестнадцатеричные числа. Преобразование из шестнадцатеричного в двоичное может работать точно так же, независимо от длины числа.Давайте попробуем с B8CF . Если вы догадались, что это даст нам более длинную двоичную цифру, вы угадали.

Мы разделим каждую букву или цифру и найдем десятичный эквивалент букв. В этом случае мы можем думать о B 8 C F как о 11 8 12 15. Теперь просто найдите двоичный эквивалент для каждого из этих десятичных знаков.

Таким образом, двоичный вывод для B8CF будет 1011100011001111 — целая строка из единиц и нулей!

Как может выглядеть еще более длинная двоичная строка в шестнадцатеричном формате? Чем больше цифр и букв, тем больше двоичный вывод.Возьмем, к примеру, 789ABC . Мы перепишем его как 7 8 9 10 11 12, а затем найдем двоичный вывод для каждого числа.

789ABC в шестнадцатеричном формате — это 11110001001101010111100 ! Это много нулей и единиц, за которыми нужно следить. Преобразование шестнадцатеричного числа в двоичное может быть утомительным, если вы имеете дело с большими шестнадцатеричными числами. Вы всегда можете вставить свои числа в шестнадцатеричный преобразователь в двоичный на этом веб-сайте — но, по крайней мере, у вас есть базовое представление о том, как самому преобразовать шестнадцатеричное в двоичное.Знаешь, на случай, если поездка на Марс пойдет не по плану.

Вопросы и ответы о преобразовании шестнадцатеричных чисел в двоичные

👉 Как использовать преобразователь из шестнадцатеричного в двоичный?

Конвертер шестнадцатеричного числа в двоичное на ConvertBinary.com действительно прост в использовании.

Просто выполните следующие действия: введите свой шестнадцатеричный номер в первое поле, затем нажмите кнопку «Преобразовать».

Двоичное представление вашего шестнадцатеричного числа немедленно появится в поле ниже.

✏️ Как преобразовать шестнадцатеричное в двоичное?

Чтобы преобразовать шестнадцатеричные числа в их двоичный эквивалент, у вас есть два варианта: вы можете либо использовать онлайн-конвертер (например, тот, который предоставляется бесплатно на ConvertBinary.com), либо вы можете сделать это вручную.

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

⚙️ Как работает преобразователь из шестнадцатеричного в двоичный?

Он использует функцию программирования, которая декодирует двоичную строку, когда она закодирована в шестнадцатеричном формате.

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

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

🔢 Могу ли я преобразовать числа из двоичного в шестнадцатеричный?

Конечно! Если вы хотите преобразовать любое число, представленное в двоичном формате, в шестнадцатеричное, вы можете использовать преобразователь из двоичного в шестнадцатеричный в ConvertBinary.com.

❓ Какое двоичное значение шестнадцатеричного числа 1234567890ABCDEF?

Это 1001000110100010101100111100010010000101010111100110111101111 (что составляет 19 088 743 в десятичном формате, как вы можете проверить с помощью преобразователя из двоичного в десятичный )

Как преобразовать шестнадцатеричное в двоичное

Это очень простой способ использовать этот инструмент преобразования. Все, что вам нужно сделать, это ввести шестнадцатеричное число, например ABCD, в левое текстовое поле, а затем нажать кнопку «Преобразовать», чтобы получить двоичное значение в правом текстовом поле.

пожаловаться на это объявление

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

Основание шестнадцатеричной системы счисления — 16. Следовательно, в этой системе 16 символов или цифр. Первые десять цифр аналогичны десятичной системе счисления — 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Остальные шесть цифр представлены символами A, B, C, D. , E и F, представляющие десятичные числа 10, 11, 12, 13, 14 и 15 соответственно. Самая большая единственная цифра — F (на 1 меньше, чем основание 16).Каждая цифра в шестнадцатеричной системе счисления представляет собой степень основания (16). Эта система счисления используется для представления цветов в программировании HTML; FF0000 представляет красный цвет, 00FF00 представляет зеленый цвет, 0000FF представляет синий цвет и т. Д.

Двоичная система счисления

Машины используют двоичную систему счисления для выполнения вычислений. Это число имеет основание 2. Следовательно, в этой системе 2 цифры — 0 и 1. Каждая цифра в двоичной системе счисления представляет собой степень основания (2).

Как преобразовать шестнадцатеричное в двоичное

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

  1. Преобразует каждую шестнадцатеричную цифру в ее эквивалентное десятичное значение.
  2. Преобразует десятичные значения, полученные на шаге 1, в 4-значное двоичное.
  3. Объедините все двоичные группы по четыре цифры в каждой в одно двоичное число.

Шаги, упомянутые выше, станут понятнее, когда мы применим их в примере.Предположим, у нас есть шестнадцатеричное число 4CD, которое мы хотим преобразовать в двоичное число.

Шаг i) Преобразуйте каждую шестнадцатеричную цифру в ее эквивалентное десятичное значение.

4 16 = 4 10
C 16 = 12 10
D 16 = 13 10

Шаг ii) Преобразуйте десятичные значения, полученные на шаге 1, в 4-значное двоичное.

4 10 = 0100 2
12 10 = 1100 2
13 10 = 1101 2

Шаг iii) Объедините двоичные группы

4CD 16 = 010011001101 2

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

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

Шестнадцатеричные числа Двоичные числа
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
А 1010
В 1011
К 1100
Д 1101
E 1110
Ф 1111

Как преобразовать шестнадцатеричные значения в двоичные в Python

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

Быстрый просмотр

Шестнадцатеричные значения (также известные как числа с основанием 16) состоят из символов в диапазоне от 1 до 9 и от a до f. Всего: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, g] . Двоичные числа (они же числа с основанием 2) запомнить намного проще: [0, 1] . Каждый из них хранит данные способами, которые могут быть особенно полезны в определенных контекстах. Двоичные значения являются основой для компьютерного числового представления, но шестнадцатеричные значения позволяют нам более удобно представлять большие значения, по крайней мере, в большинстве случаев.

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

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

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

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

1. Использование бункера Встроенный

Метод bin Python преобразует целочисленное значение в объект двоичного значения. Однако в случае, если шестнадцатеричные значения включают алфавитные символы (таким образом интерпретируемые как строку), требуется промежуточное преобразование.Например:

 # Определить шестнадцатеричное значение
hex_value = "1f"

# Преобразовать в двоичное значение
bin (шестнадцатеричное значение)

>>> TypeError: объект 'str' нельзя интерпретировать как целое число 

Это сигнализирует о том, что Python не может напрямую преобразовать строковое значение в двоичное значение. Сначала мы должны преобразовать строку в целочисленное значение. Для этого мы воспользуемся функциональностью типа данных Python int и принятием спецификаций базовых значений.

 # Определить шестнадцатеричное значение
hex_value = "1f"

# Преобразовать в целое число
int_value = int (шестнадцатеричное_значение, основание = 16)
>>> 28

# Преобразовать целое число в двоичное значение
bin_value = bin (int_value)
>>> 0b11100 

Это дает нам двоичный объект с двоичным значением, но, возможно, это не совсем то, что мы ищем. Во-первых, префикс 0b может быть слишком утомительным, чтобы его можно было использовать. Это можно исправить, преобразовав в строку и отсекая от второго символа и далее следующим образом:

 # Определить шестнадцатеричное значение
hex_value = "1c"

# Преобразовать в целое число
int_value = int (шестнадцатеричное_значение, основание = 16)
>>> 28
тип (int_value)
>>> <класс 'int'>

# Преобразовать целое число в двоичное значение
двоичное_значение = str (bin (int_value)) [2:]
>>> 11100
тип (двоичное_значение)
>>> <класс 'str'> 

Это похоже на то, на что похоже большинство представлений двоичных чисел, но здесь всего 5 цифр.Это потому, что по умолчанию Python отображает только количество цифр, достаточное для представления самого старшего бита (MSB), и опускает любые ведущие 0.

Допустим, мы работаем с 8-битными числами и хотим, чтобы все они отображались с одинаковым количеством битов. Это означает 8 цифровых разрядов для 127 и 8 для 0. Это может быть выполнено с помощью встроенного метода zfill () строк Python в сочетании с тем, что мы уже получили:

 # Определить шестнадцатеричное значение
hex_value = "1c"

# Преобразовать в целое число
int_value = int (шестнадцатеричное_значение, основание = 16)
>>> 28

# Преобразовать целое число в двоичное значение
двоичное_значение = str (bin (int_value)) [2:].zfill (8)
>>> 00011100 

Выглядит лучше! Функция Python zfill добавит 0 к строке, если эта строка меньше указанного значения по длине. Из документов zfill:

Вернуть копию строки слева, заполненную цифрами ASCII '0' , чтобы получилась строка длиной и шириной. Префикс ведущего знака ( '+' / '-' ) обрабатывается путем вставки отступа после символа знака, а не перед ним. Исходная строка возвращается, если ширина меньше или равна len (s) .

Собираем все вместе

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

 def hex_to_binary (шестнадцатеричное_число: str, num_digits: int = 8) -> str:
    "" "
    Преобразует шестнадцатеричное значение в строковое представление
    соответствующего двоичного значения
    Аргументы:
        hex_number: шестнадцатеричное значение str
        num_digits: целое число для длины двоичного значения.по умолчанию 8

    Возврат:
        строковое представление двоичного числа с дополнением 0
        до минимальной длины 
    "" "
    return str (bin (int (шестнадцатеричное_число, 16))) [2:]. zfill (num_digits) 

Эта функция принимает два аргумента: шестнадцатеричное значение и аргумент num_digits, представляющий минимальную длину возвращаемого двоичного значения. Для num_digits задана длина по умолчанию 8, так что можно легко работать с 8-битными значениями.Если вы работаете с 16, 32 или 64-битными значениями, просто укажите это как таковое: hex_to_binary ("123abc", 16) .

Примечание : эта функция доступна на GitHub, где вы можете создать свою собственную версию.

Обзор

Набор инструментов

Python охватывает практически все потребности, начиная от программирования сокетов и битового сдвига до статистического анализа и числовых преобразований. Здесь мы увидели, как использовать встроенные в Python типы данных bin и int , а также str.zfill для преобразования шестнадцатеричного значения в двоичную строку. Есть много других способов сделать это, но, на мой взгляд, этот включает наименьшее количество зависимостей и хорошо выполняет свою работу.

Шестнадцатеричный преобразователь в двоичный

Как преобразовать шестнадцатеричное в двоичное?

Чтобы преобразовать шестнадцатеричное число в двоичное (основание 16 в основание 2), замените каждую отдельную шестнадцатеричную цифру ее двоичным эквивалентом и объедините. Вот шаги для преобразования из шестнадцатеричной системы в двоичную:

1 — разделить шестнадцатеричные цифры.

2 — Получить двоичный эквивалент каждой шестнадцатеричной цифры.

3 — Объедините двоичные цифры в одну строку.

4 — Удалите все нули в начале двоичного числа перед первой «1».

Например, вот шаги для преобразования шестнадцатеричного числа «3CD» в двоичное:

Шестнадцатеричные цифры: 3, C и D

3DC = (3 = 0011) (C = 1100) (D = 1101)

3DC = 0011 1100 1101

3DC = 1111001101

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

Как преобразовать двоичный код в шестнадцатеричный?

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

1 — Начиная с последней двоичной цифры до первой, разделите двоичное число на группы из четырех двоичных цифр.

2 — Если первая двоичная группа состоит менее чем из четырех цифр, добавьте «0» в начало этой группы.

3 — Для каждой двоичной группы получите шестнадцатеричный эквивалент.

4 — Объедините шестнадцатеричные цифры в одну строку.

Например, вот шаги для преобразования двоичного числа «1110111001» в шестнадцатеричное:

1110111001 = 11 1011 1001

1110111001 = 0011 1011 1001

1110111001 = 3 Б 9

1110111001 = 3B9

Что такое шестнадцатеричная система счисления?

Шестнадцатеричная (шестнадцатеричная) система — это система счисления с основанием 16, в которой используются 16 символов (0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F) для представления значений от 0 до 15.

Шестнадцатеричная система счисления в основном используется в вычислениях для удобного представления двоичных чисел. Каждый из символов в шестнадцатеричном формате представляет собой представление четырех двоичных разрядов.

Чтобы преобразовать шестнадцатеричные числа в десятичные, посетите шестнадцатеричный преобразователь десятичных чисел.

Что такое двоичная система счисления?

Двоичная система — это система счисления с основанием 2, в которой для представления любого числа используются только «1» и «0».

Для преобразования между десятичным и двоичным числами посетите десятичный преобразователь в двоичный.

Двоичный ⇄ шестнадцатеричный преобразователь с шагами

Метод шестнадцатеричного преобразования в двоичное

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

шаг 1: Разделите цифры данного шестнадцатеричного числа, если их больше 1.
шаг 2: Найдите эквивалентное двоичное число для каждой цифры шестнадцатеричного числа, добавьте 0 слева, если какой-либо из двоичных эквивалентов короче 4 бит.
шаг 4: Записать двоичные числа всех групп вместе, поддерживая одинаковый порядок групп, обеспечивая эквивалентный двоичный код для данного шестнадцатеричного числа.

Решенный пример проблемы
Решенный ниже пример задачи может быть полезен для понимания того, как выполнить преобразование шестнадцатеричного числа в двоичное.

Задача
Преобразуйте шестнадцатеричное число 9DB.A5 16 в его двоичный эквивалент.

Десятичная, двоичная, восьмеричная и шестнадцатеричная система счисления — таблица преобразования
Ниже представлена ​​таблица преобразования для десятичной, двоичной, восьмеричной и шестнадцатеричной систем счисления.

Таблица преобразования для десятичной, двоичной, восьмеричной и шестнадцатеричной систем счисления
Десятичное двоичный восьмеричное шестигранник
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 А
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
Пользователи могут использовать вышеуказанный конвертер, работать с шагами, решенными примерами и таблицей преобразования, чтобы изучить, попрактиковаться и проверить, как эффективно выполнять преобразование двоичного кода в шестнадцатеричный и шестнадцатеричный в двоичный.

alexxlab

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

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