Глава – 4
Системы счисления
Введение
В программах восстановления данных или любых других программах по устранению неполадок диска очень часто используется одновременная обработка различных типов систем счисления для выполнения одной задачи или даже очень небольшой части работы, такой как вычисление конкретных местоположений расширенных MBR. ) с точки зрения CHS (цилиндров, головок и секторов), и эти местоположения помогают программисту выполнять операции.
Вероятно, большинство начинающих программистов сталкиваются с проблемой или путаницей при преобразовании различных типов систем счисления друг в друга при попытке изучить системное программирование на ассемблере и когда необходимо использовать двоичную и шестнадцатеричную системы счисления.
В этой главе мы обсудим многие важные концепции, включая двоичную, десятичную, шестнадцатеричную системы счисления, а также организацию двоичных данных, такую как преобразование битов, полубайтов, байтов, слов, двойных слов и т. д., а также многие другие связанные темы. систем счисления.
Большинство современных компьютерных систем не представляют числовые значения в десятичной системе, но обычно используют двоичную систему счисления или систему счисления с дополнением до 2.
В программировании обычно используются четыре системы счисления: двоичная, восьмеричная, десятичная и шестнадцатеричная. Однако чаще всего мы будем встречаться с двоичной, десятичной и шестнадцатеричной системами счисления. Эти системы счисления были дифференцированы в соответствии с их базовым числом.
Каждая система счисления имеет свой собственный базовый номер и символ представления. Я представил эти четыре числа в следующей таблице:
Name of Number System |
Base Number |
Symbol Used for Representation |
Binary |
2 |
B |
Octal |
8 |
Q or O |
Decimal |
10 |
D or None |
Hexadecimal |
16 |
H |
Десятичная система счисления
В десятичной системе счисления используется основание 10, и она включает цифры от 0 до 9. Не запутайтесь, это обычная система счисления, которую мы используем в нашей повседневной жизни для вычислений. Взвешенные значения мощностей для каждой позиции будут следующими:
Таким образом, если у меня есть десятичное число 218, и я хочу представить его вышеописанным образом, число 218 будет представлено следующим образом:
2 * 102 + 1 * 101 + 8 * 100
= 2 * 100 + 1 * 10 + 8 * 1
= 200 + 10 + 8
= 218
Теперь давайте возьмем пример любого дробного десятичного числа. Пусть у нас есть число 821.128. Каждая цифра, расположенная слева от десятичной точки, представляет собой значение от нуля до девяти, а степень десяти представлена ее положением в числе (начиная с 0).
Цифры справа от запятой представляют собой число от нуля до девяти, умноженное на возрастающую отрицательную степень числа десять. Давайте посмотрим, как:
8 * 102 + 2 * 101 + 1 * 100 + 1 * 10-1 + 2 * 10-2 + 8 * 10-3
= 8 * 100 + 2 * 10 + 1 * 1 + 1 * 0.1 + 2 * 0.01 + 8 * 0.001
= 800 + 20 + 1 + 0.1 + 0.02 + 0.008
= 821.128
Двоичная система счисления
Сегодня большинство современных компьютерных систем работают с использованием двоичной логики. Компьютер представляет значения, используя два уровня напряжения, которые указывают либо ВЫКЛ, либо ВКЛ, используя 0 и 1. Например, напряжение 0 В обычно представлено логическим 0, а напряжение +3,3 В или +5 В представлено логической 1. Таким образом, с двумя уровнями мы можем представить ровно два разных значения. Это могут быть любые два разных значения, но по соглашению мы используем значения 0 и 1.
Поскольку существует соответствие между логическими уровнями, используемыми компьютером, и двумя цифрами, используемыми в двоичной системе счисления, неудивительно, что компьютеры используют двоичную систему счисления.
Двоичная система счисления работает так же, как десятичная система счисления, за исключением того, что в двоичной системе счисления используется основание 2 и включают только цифры 0 и 1, а использование любой другой цифры сделало бы число недопустимым двоичным числом.
Взвешенные значения для каждой позиции представлены следующим образом:
В следующей таблице показано представление двоичного числа по сравнению с десятичным числом:
Decimal Number |
Binary Number Representation |
0 |
0000 |
1 |
0001 |
2 |
0010 |
3 |
0011 |
4 |
0100 |
5 |
0101 |
6 |
0110 |
7 |
0111 |
8 |
1000 |
9 |
1001 |
10 |
1010 |
11 |
1011 |
12 |
1100 |
13 |
1101 |
14 |
1110 |
15 |
1111 |
Обычно в случае десятичных чисел каждые три десятичных разряда разделяются запятой, чтобы облегчить чтение больших чисел. Например, гораздо проще прочитать число 840 349 823, чем 840349823.
Вдохновившись той же идеей, существует аналогичное соглашение для двоичных чисел, чтобы их было легче читать, но в случае двоичных чисел мы будем добавлять пробел через каждые четыре цифры, начиная с младшей значащей цифры. слева от десятичной точки.
Например, если двоичное значение равно 1010011001101011, оно будет записано как 1010 0110 0110 1011.
Преобразование двоичных чисел в десятичные
Чтобы преобразовать двоичное число в десятичное, мы умножаем каждую цифру на ее взвешенную позицию и складываем все взвешенные значения вместе. Например, двоичное значение 1011 0101 представляет:
1*27 + 0*26 + 1*25 + 1*24 + 0*23 + 1*22 + 0*21 + 1*20
= 1 * 128 + 0 * 64 + 1 * 32 + 1 * 16 + 0 * 8 + 1 * 4 + 0 * 2 + 1 * 1
= 128 + 0 + 32 + 16 + 0 + 4 + 0 + 1
= 181
Преобразование десятичных чисел в двоичные
Чтобы преобразовать любое десятичное число в его двоичную систему счисления, общий метод состоит в том, чтобы разделить десятичное число на 2, если остаток равен 0, сбоку запишите 0. Если остаток равен 1, запишите 1.
Этот процесс продолжается путем деления частного на 2 и отбрасывания предыдущего остатка до тех пор, пока частное не станет равным 0. При выполнении деления остатки, которые будут представлять двоичный эквивалент десятичного числа, записываются, начиная с младшей значащей цифры. (справа) и каждая новая цифра записывается в более значащую цифру (слева) предыдущей цифры.
Давайте рассмотрим пример. Рассмотрим число 2671. Двоичное преобразование числа 2671 приведено в следующей таблице.
Division |
Quotient |
Remainder |
Binary Number |
2671 / 2 |
1335 |
1 |
1 |
1335 / 2 |
667 |
1 |
11 |
667 / 2 |
333 |
1 |
111 |
333 / 2 |
166 |
1 |
1111 |
166 / 2 |
83 |
0 |
0 1111 |
83 / 2 |
41 |
1 |
10 1111 |
41 / 2 |
20 |
1 |
110 1111 |
20 / 2 |
10 |
0 |
0110 1111 |
10 / 2 |
5 |
0 |
0 0110 1111 |
5 / 2 |
2 |
1 |
10 0110 1111 |
2 / 2 |
1 |
0 |
010 0110 1111 |
1 / 2 |
0 |
1 |
1010 0110 1111 |
Эта таблица предназначена для разъяснения каждого шага преобразования, однако на практике, чтобы получить простоту и скорость преобразования, вы можете следовать следующему способу, чтобы получить результаты.
Пусть 1980 — это любое десятичное число, которое нужно преобразовать в его двоичный эквивалент. Затем, следуя методу, указанному в таблице, мы решим эту проблему следующим образом:
Когда мы располагаем остатки в соответствии с направлением стрелки, мы получаем двоичное число, эквивалентное десятичному числу 1980 = 0111 1011 1100
Форматы двоичных чисел
Обычно мы записываем двоичные числа в виде последовательности битов. «Биты» — это сокращение от «двоичных цифр» в машине. Для этих битов существуют определенные границы формата. Границы этих форматов представлены в следующей таблице:
Name |
Size in bits |
Example |
Bit |
1 |
1 |
Nibble |
4 |
0101 |
Byte |
8 |
0000 0101 |
Word |
16 |
0000 0000 0000 0101 |
Double Word |
32 |
0000 0000 0000 0000 0000 0000 0000 0101 |
Мы можем добавить столько начальных нулей, сколько пожелаем, без изменения его значения в любой системе счисления, однако обычно мы добавляем начальные нули, чтобы подогнать двоичное число к желаемой границе размера.
Например мы можем представить число 7 в разных случаях, как показано в таблице:
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Bit |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
Nibble |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
1 |
1 |
Byte |
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
Word |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
Где крайний правый бит в двоичном числе равен нулю, а каждому биту слева присваивается следующий последующий номер бита, как показано в таблице выше.
Нулевой бит обычно называют наименее значащим битом или LSB, а самый левый бит обычно называют старшим значащим битом или MSB. Сообщите нам об этих форматах представления:
Бит
Бит — это наименьшая единица данных на двоичном компьютере. Один бит может представлять только одно значение, 0 или 1. Если вы используете бит для представления логического значения (True/False), то этот бит представляет собой true или false..
Кусочек
Ниббл особенно интересен, когда мы говорим о системах счисления, двоично-десятичных (двоично-десятичных) и/или шестнадцатеричных (с основанием 16) числах.
Полбайт – это набор битов на 4-битной границе. Для представления одной двоично-десятичной или шестнадцатеричной цифры требуется четыре бита. С помощью фрагмента мы можем представить до 16 различных значений.
В случае шестнадцатеричных чисел значения 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E и F представлены четырьмя битами. BCD использует десять различных цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) и требует четыре бита.
На самом деле любые шестнадцать различных значений могут быть представлены с помощью полубайта, но шестнадцатеричные и двоично-десятичные числа являются основными элементами, которые мы можем представить с помощью одного полубайта. Представление полубайта на битовом уровне будет следующим:
Байт
Байт — это самая важная структура данных, используемая микропроцессором 80x86. Байт состоит из восьми битов и является наименьшим адресуемым элементом данных в микропроцессоре. Адреса основной памяти и ввода/вывода в компьютере представляют собой байтовые адреса, и, таким образом, наименьший элемент, к которому микропроцессорные программы 80x86 могут получить индивидуальный доступ, представляет собой 8-битное значение.
Чтобы получить доступ к чему-либо меньшему, необходимо прочитать байт, содержащий данные, и замаскировать ненужные биты. Мы запрограммируем это в следующих главах.
Самое важное назначение байта – хранение кода символа. Биты в байте нумеруются от нулевого бита (b0) до седьмого (b7) следующим образом:
Бит 0 (b0) — это младший бит или младший значащий бит, а бит 7 (b7) — старший бит или старший значащий бит байта.
Здесь мы видим, что байт содержит ровно два полубайта, где биты с b0 по b3 составляют полубайт младшего разряда, а биты с b4 по b7 формируют полубайт старшего разряда.
Поскольку байт содержит ровно два полубайта, значения байтов должны состоять из двух шестнадцатеричных цифр.
Поскольку традиционный современный компьютер представляет собой машину с байтовой адресацией, оказывается более эффективным манипулировать целым байтом, чем отдельным битом или фрагментом.
Вот почему большинство программистов используют целый байт для представления типов данных, которые требуют не более 256 элементов
Поскольку байт содержит восемь битов, он может представлять 28 или 256 различных значений, поскольку максимальное 8-битное двоичное число может составлять 1111 1111, что эквивалентно 256 (десятичному), поэтому обычно байт используется для представления следующего:
- беззнаковые числовые значения в диапазоне от 0 до 255
- числа со знаком в диапазоне от -128 до +127
- Коды символов ASCII
- И другие специальные типы данных, требующие не более 256 различных значений, поскольку многие типы данных содержат менее 256 элементов, поэтому обычно достаточно восьми битов.
Слово
Слово — это группа из 16 битов. Но традиционно граница для слова определяется либо как 16 бит, либо как размер шины данных для процессора, а двойное слово — это два слова. Поэтому Word и Double Word не имеют фиксированного размера, а варьируются от системы к системе в зависимости от процессора. Однако для концептуального чтения мы будем определять слово как два байта.
Когда мы видим слово на уровне битов, оно будет пронумеровано как биты в слове, начиная с нулевого бита (b0) и заканчивая пятнадцатым битом (b15). Представление битового уровня будет следующим:
Где бит 0 — это LSB (младший значащий бит), а бит 15 — MSB (старший значащий бит). Когда есть необходимость сослаться на другие биты в слове, для ссылки на них используется номер их битовой позиции.
Таким образом, слово содержит ровно два байта, так что от бита b0 до бита b7 формируется младший байт, а биты с b8 по b15 — старший байт. С помощью 16-битного слова мы можем представить 216 (65536) различных значений. Эти значения могут быть следующими:
- Числовые значения без знака в диапазоне от 0 до 65 535.
- Числовые значения со знаком в диапазоне от -32 768 до +32 767
- Любой тип данных, содержащий не более 65 536 значений. Таким образом, слова в основном используются для:
- 16-битные целочисленные значения данных
- 16-битные адреса памяти
- Любая система счисления, требующая 16 бит или меньше
Двойное слово
Двойное слово точно соответствует своему названию и состоит из двух слов. Поэтому количество двойных слов составляет 32 бита. Двойное слово также можно разделить на старшее слово и младшее слово, четыре байта или восемь полубайтов и т. д.
Таким образом, двойное слово может представлять все виды различных данных. Это может быть следующее:
- Двойное слово без знака в диапазоне от 0 до 4 294 967 295,
- Двойное слово со знаком в диапазоне от -2 147 483 648 до 2 147 483 647.
- 32-битное значение с плавающей запятой.
- Или любые другие данные, для которых требуется 32 бита или меньше.
Восьмеричная система счисления
Восьмеричная система счисления была популярна в старых компьютерных системах, но сегодня она используется очень редко. Однако мы возьмем идеал восьмеричной системы только для ознакомления.
Восьмеричная система основана на двоичной системе с 3-битной границей. Восьмеричная система счисления использует основание 8 и включает только цифры от 0 до 7. Таким образом, любая другая цифра сделает число недопустимым восьмеричным числом.
В таблице показаны взвешенные значения для каждой позиции:
(base)power |
85 |
84 |
83 |
82 |
81 |
80 |
Value |
32768 |
4096 |
512 |
64 |
8 |
1 |
Преобразование двоичного кода в восьмеричный
Чтобы преобразовать целое двоичное число в восьмеричное, выполните следующие два шага:
Сначала разбейте двоичное число на 3-битные секции от LSB до MSB. А затем преобразуйте 3-битное двоичное число в его восьмеричный эквивалент. Давайте возьмем пример, чтобы лучше понять это. Если мы дали какое-либо двоичное число, скажем, 11001011010001, для преобразования в восьмеричную систему счисления, мы применим к этому числу два вышеуказанных шага следующим образом:
3-bit Section of Binary Number |
011 |
001 |
011 |
010 |
001 |
Equivalent number |
3 |
1 |
3 |
2 |
1 |
Таким образом, восьмеричное число, эквивалентное двоичному числу 11001011010001, равно 31321.
Восьмеричное преобразование в двоичное
Чтобы преобразовать любое целое восьмеричное число в соответствующее ему двоичное число, выполните следующие два шага:
Сначала преобразуйте десятичное число в его 3-битный двоичный эквивалент. А затем объедините 3-битные разделы, удалив пробелы. Возьмем пример. Если у нас есть какое-либо целое восьмеричное число 31321 (Q), которое нужно преобразовать в соответствующее двоичное число, мы применим два вышеуказанных шага следующим образом:
Equivalent number |
3 |
1 |
3 |
2 |
1 |
3-bit Section of Binary Number |
011 |
001 |
011 |
010 |
001 |
Таким образом, двоичный эквивалент восьмеричного числа 31321(Q) равен 011 0010 1101 0001.
Восьмеричное преобразование в десятичное
Чтобы преобразовать любое восьмеричное число в десятичное, мы умножаем значение в каждой позиции на его восьмеричный вес и добавляем каждое значение.
Давайте рассмотрим пример, чтобы лучше понять это. Пусть у нас есть любое восьмеричное число 31321Q, которое нужно преобразовать в соответствующее ему десятичное число. Затем мы выполним следующие шаги:
3*84 + 1*83 + 3*82 + 2*81 + 1*80
= 3*4096 + 1*512 + 3*64 + 2*8 + 1*1
= 12288 + 512 + 192 + 16 + 1
= 13009
Преобразование десятичного числа в восьмеричное
Преобразование десятичного числа в восьмеричное немного сложнее. Типичный метод преобразования десятичного числа в восьмеричное — это повторное деление на 8. Для этого метода мы делим десятичное число на 8 и записываем остаток сбоку как младшую значащую цифру. Этот процесс продолжается делением частного на 8 и записью остатка до тех пор, пока частное не станет равным 0.
При выполнении деления остатки, которые будут представлять восьмеричный эквивалент десятичного числа, записываются, начиная с младшей значащей цифры (справа), и каждая новая цифра записывается до следующей более значащей цифры (слева) предыдущего цифра.
Давайте лучше разберемся на примере. Если у нас есть какое-либо десятичное число, скажем, 13009 (мы нашли это десятичное число из приведенного выше примера и, преобразовав его обратно в восьмеричное число, мы также можем проверить предыдущий пример), тогда этот метод описан в следующей таблице:
Division |
Quotient |
Remainder |
Octal Number |
13009 / 8 |
1626 |
1 |
1 |
1626 / 8 |
203 |
2 |
21 |
203 / 8 |
25 |
3 |
321 |
25 / 8 |
3 |
1 |
1321 |
3 / 8 |
0 |
3 |
31321 |
Как видите, мы вернулись к исходному номеру. Это то, чего мы должны ожидать. Эта таблица была для понимания процедуры. Теперь давайте повторим то же преобразование, чтобы понять метод, которого следует придерживаться на практике для облегчения работы и экономии времени. На самом деле это одно и то же.
Когда мы расположим остатки по направлению стрелки, мы получим восьмеричное число 31321, которое мы и ожидали.
Шестнадцатеричная система счисления
Шестнадцатеричные числа чаще всего используются при восстановлении данных или любом другом типе устранения неполадок диска или программировании анализа диска, потому что шестнадцатеричные числа предлагают две следующие функции:
Шестнадцатеричные числа очень компактны. И его легко преобразовать из шестнадцатеричного в двоичный и из двоичного в шестнадцатеричный. Когда мы будем рассчитывать многие важные вещи, такие как количество цилиндров, головок и секторов жесткого диска, или мы будем использовать программы-редакторы жесткого диска для анализа различных характеристик и проблем, нам понадобится хорошее знание шестнадцатеричной системы. Шестнадцатеричная система основана на двоичной системе с полубайтовой или 4-битной границей.
Шестнадцатеричная система счисления использует основание 16 и включает только цифры от 0 до 9 и буквы A, B, C, D, E и F. Мы используем H с числом для обозначения любого шестнадцатеричное число. В следующей таблице показано представление различных систем счисления, различая их друг с другом:
Binary |
Octal |
Decimal |
Hex |
0000B |
00Q |
00 |
00H |
0001B |
01Q |
01 |
01H |
0010B |
02Q |
02 |
02H |
0011B |
03Q |
03 |
03H |
0100B |
04Q |
04 |
04H |
0101B |
05Q |
05 |
05H |
0110B |
06Q |
06 |
06H |
0111B |
07Q |
07 |
07H |
1000B |
10Q |
08 |
08H |
1001B |
11Q |
09 |
09H |
1010B |
12Q |
10 |
0AH |
1011B |
13Q |
11 |
0BH |
1100B |
14Q |
12 |
0CH |
1101B |
15Q |
13 |
0DH |
1110B |
16Q |
14 |
0EH |
1111B |
17Q |
15 |
0FH |
1 0000B |
20Q |
16 |
10H |
В этой таблице содержится вся информация, которая может понадобиться вам для преобразования из одной системы счисления в другую для десятичных значений от 0 до 16.
В следующей таблице показаны взвешенные значения для каждой позиции шестнадцатеричных чисел:
(Base)power |
163 |
162 |
161 |
160 |
Value |
4096 |
256 |
16 |
1 |
Преобразование двоичного кода в шестнадцатеричный
Чтобы преобразовать двоичное число в шестнадцатеричный формат, прежде всего дополните двоичное число ведущими нулями с левой стороны, чтобы убедиться, что двоичное число содержит кратные четырем битам. После этого выполните следующие два шага:
Сначала разбейте двоичное число на 4-битные секции от младшего до старшего бита. А затем преобразуйте 4-битное двоичное число в его шестнадцатеричный эквивалент. Давайте возьмем пример, чтобы лучше понять метод. Пусть у нас есть любое двоичное число 100 1110 1101 0011, которое нужно преобразовать в соответствующее ему шестнадцатеричное число. Затем мы применим два вышеуказанных шага, как показано ниже:
4-bit binary number section |
0100 |
1110 |
1101 |
0011 |
Hexadecimal value |
4 |
E |
D |
3 |
Таким образом, шестнадцатеричное значение, соответствующее двоичному числу 100 1110 1101 0011, равно 4ED3.
Преобразование шестнадцатеричных чисел в двоичные
Чтобы преобразовать шестнадцатеричное число в двоичное, выполните следующие два шага:
Сначала преобразуйте шестнадцатеричное число в его 4-битный двоичный эквивалент. А затем объедините 4-битные разделы, удалив пробелы. Чтобы лучше понять процедуру, давайте возьмем пример приведенного выше шестнадцатеричного числа, то есть 4ED3, и применим к нему эти два шага следующим образом.
Hexadecimal value |
4 |
E |
D |
3 |
4-bit binary number section |
0100 |
1110 |
1101 |
0011 |
Таким образом, для шестнадцатеричного числа 4ED3 мы получаем соответствующее двоичное число = 0100 1110 1101 0011
Это ожидаемый ответ.
Преобразование шестнадцатеричных чисел в десятичные Для преобразования шестнадцатеричных чисел в десятичные мы умножаем значение в каждой позиции на его шестнадцатеричный вес и добавляем каждое значение. Давайте возьмем пример, чтобы лучше понять процедуру. Предположим, что у нас есть любое шестнадцатеричное число 3ABE, которое нужно преобразовать в эквивалентное ему десятичное число. Тогда процедура будет следующей:
3*163 + A*162 + B*161 + E*160
= 3* 4096 + 10* 256 + 11*16 + 14
= 12288 + 2560 + 176 + 14
= 15038
Таким образом, эквивалентное десятичное число для шестнадцатеричного числа 3ABE равно 15038.
Преобразование десятичного числа в шестнадцатеричное
Чтобы преобразовать десятичное число в шестнадцатеричное, типичным методом является повторное деление на 16. Для этого метода мы делим десятичное число на 16 и записываем остаток сбоку как младшую значащую цифру.
Этот процесс продолжается делением частного на 16 и записью остатка до тех пор, пока частное не станет равным 0. При выполнении деления остатки, которые будут представлять шестнадцатеричный эквивалент десятичного числа, записываются, начиная с младшей значащей цифры (справа). ), и каждая новая цифра записывается в следующую более значащую цифру (слева) от предыдущей цифры.
Давайте изучим это на примере. Берем десятичное число 15038, которое мы получили после преобразования выше. Таким образом мы также можем проверить приведенное выше преобразование и наоборот.
Division |
Quotient |
Remainder |
Hex Number |
15038 / 16 |
939 |
14 (E H) |
E |
939 / 16 |
58 |
11 (B H) |
BE |
58 / 16 |
3 |
10 (A H) |
ABE |
3 / 16 |
0 |
3 (3 H) |
03ABE |
Таким образом, мы получаем шестнадцатеричное число 03ABE H, эквивалентное десятичному числу 15038, и, таким образом, мы возвращаемся к исходному числу. Это то, чего мы должны ожидать.
Приведенная ниже таблица может помочь в быстром поиске преобразования шестнадцатеричных чисел в десятичные числа и наоборот в диапазоне от 0 до 255 десятичных чисел.
В этой таблице Square есть 16 строк, начиная с 0 до A, и 16 столбцов, также начинающихся от 0 до A. Из этой таблицы вы можете найти десятичное значение любого шестнадцатеричного числа, которое находится в диапазоне от 0H до FFH. Это означает, что десятичное значение числа должно находиться в диапазоне от 0 до 255 десятичных чисел.
- Нахождение десятичного значения для шестнадцатеричного числа из приведенной выше таблицы: в приведенной выше таблице количество строк представляет первую шестнадцатеричную цифру (левая шестнадцатеричная цифра), а количество столбцов представляет вторую шестнадцатеричную цифру (правая шестнадцатеричная цифра) шестнадцатеричного числа.
Пусть у нас есть любое шестнадцатеричное число, скажем, ACH, которое нужно преобразовать в эквивалентное десятичное число. Затем мы увидим десятичное значение в столбце Cth строки Ath в таблице и получим десятичное значение 172, которое является эквивалентным десятичным числом для шестнадцатеричного числа ACH.
- Нахождение шестнадцатеричного значения для десятичного числа из приведенной выше таблицы: в приведенной выше таблице количество строк представляет первую шестнадцатеричную цифру (левая шестнадцатеричная цифра), а количество столбцов представляет вторую шестнадцатеричную цифру (правая шестнадцатеричная цифра) шестнадцатеричного числа. таким образом, если у вас есть какое-либо десятичное число, которое нужно преобразовать в эквивалентное шестнадцатеричное число, найдите число в таблице и найдите эквивалентное шестнадцатеричное значение следующим образом:
Шестнадцатеричное значение для десятичного числа = (номер строки)(номер столбца)
Например, если вы хотите найти эквивалентное шестнадцатеричное число для десятичного числа 154, см. расположение числа в таблице. Число 154 находится в 9-й строке и столбце Ath таблицы. Таким образом, эквивалентное шестнадцатеричное значение для десятичного числа 154 равно 9AH.
Код ASCII
Аббревиатура ASCII расшифровывается как Американский стандартный код для обмена информацией. Это стандарт кодирования символов, цифр и символов, который совпадает с первыми 128 символами набора символов ASCII, но отличается от остальных символов. Эти другие символы обычно называются специальными символами ASCII или расширенными символами, которые были определены IBM.
Первые 32 символа, представляющие собой коды ASCII от 0 до 1FH, образуют специальный набор непечатаемых символов. Эти символы называются управляющими, поскольку они выполняют различные операции управления принтером и дисплеем, а не отображают символы. Эти символы перечислены в таблице символов ASCII, приведенной в этой главе. Эти управляющие символы имеют следующие значения:
NUL (Нулевой):
Нет персонажа. Он используется для заполнения времени или заполнения пространства на поверхности (например, на поверхности пластины) запоминающего устройства, где нет данных. Мы будем использовать этот символ, когда будем программировать очистители данных (как деструктивные, так и недеструктивные), чтобы стереть нераспределенное пространство, чтобы удаленные данные не могли быть восстановлены кем-либо или какой-либо программой.
SOH (начало заголовка):
Этот символ используется для обозначения начала заголовка, который может содержать информацию об адресе или маршруте.
TX (начало текста):
Этот символ используется для обозначения начала текста и, таким образом, также используется для обозначения конца заголовка.
ETX (конец текста):
Этот символ используется для завершения текста, начатого с помощью STX.
EOT (конец передачи):
Этот символ указывает на конец передачи, которая могла включать один или несколько «тестов» с заголовками.
ENQ (запрос):
Это запрос ответа от удаленной станции. Это запрос станции на идентификацию себя.
ACK (подтверждение):
Это символ, передаваемый принимающим устройством в качестве подтверждающего ответа на шлифовальную машину. Используется как положительный ответ на сообщения опроса.
БЕЛ (звонок):
Он используется, когда необходимо привлечь внимание человека. Он может управлять устройствами сигнализации или внимания. Вы можете услышать сигнал колокольчика из динамиков, подключенных к вашему компьютеру, когда вы вводите этот символ в командной строке, как показано ниже:
C:\> Эхо ^G
Здесь ^G печатается комбинацией клавиш Ctrl + G.
BS (Backspace):
Этот символ указывает на перемещение механизма печати или курсора дисплея назад на одну позицию.
HT (горизонтальная вкладка):
Это указывает на перемещение механизма печати или курсора дисплея вперед к следующей предварительно назначенной «вкладке» или позиции остановки.
LF (перевод строки):
Указывает на перемещение механизма печати или курсора дисплея к началу следующей строки.
VT (вертикальная вкладка):
Это указывает на перемещение механизма печати или курсора дисплея к следующей из ряда предварительно назначенных строк печати.
FF (передача формы):
Это указывает на перемещение механизма печати или курсора дисплея в начальную позицию следующей страницы, с или экрана.
CR (возврат каретки):
Это указывает на перемещение механизма печати или курсора дисплея в начальную позицию той же строки.
ТАК (Сдвиг вне):
Это указывает на то, что следующие комбинации кодов должны интерпретироваться как не входящие в стандартный набор символов, пока не будет достигнут символ Shift In.
I (Shift In):
Это указывает на то, что следующие комбинации кодов должны интерпретироваться в соответствии со стандартным набором символов.
DLE (экранирование канала передачи данных):
Это символ, который меняет значение одного или нескольких следующих друг за другом символов. Он может обеспечивать дополнительный контроль или разрешать отправку символов данных с любой комбинацией битов.
DC1, DC2, DC3 и DC4 (элементы управления устройствами):
Это символы для управления вспомогательными устройствами или специальными функциями терминала.
NAK (отрицательное подтверждение):
Это символ, передаваемый принимающим устройством в качестве отрицательного ответа отправителю. Используется как отрицательный ответ на сообщение опроса.
SYN (синхронный/бездействующий):
он используется системой синхронной передачи для достижения синхронизации, когда данные не отправляются. Система синхронной передачи может непрерывно отправлять символы SYN.
ETB (конец блока передачи):
Этот символ указывает на конец блока данных для целей связи. Он используется для блокирования данных, где структура блока не обязательно связана с форматом обработки.
CAN (Отмена): указывает, что данные, которые предшествуют ему в сообщении или блоке, обычно следует игнорировать из-за обнаружения ошибки.
EM (Конец носителя): указывает физический конец ленты, поверхности (обычно пластины диска) или другого носителя или конец требуемой или используемой части носителя.
SUB (замена): это замена символа, который признан ошибочным или недействительным.
ESC (Escape): это символ, предназначенный для расширения кода, поскольку он дает указанному количеству непрерывно следующих символов альтернативное значение.
FS (разделитель файлов): этот символ используется в качестве символа-разделителя файлов.
GS (разделитель групп): используется в качестве символа-разделителя групп.
RS (разделитель записей): используется в качестве символа-разделителя записей.
США (объединенный разделитель):
Это единый символ-разделитель.
Вторая группа из 32 кодов символов ASCII содержит различные знаки препинания, специальные символы и цифровые цифры. К наиболее заметным персонажам этой группы относятся следующие:
символ пробела (код ASCII 20H)
числовые цифры от 0 до 9 (коды ASCII от 30h до 39h)
математические и логические символы
SP (пробел):
Это непечатаемый символ, используемый для разделения слов, перемещения механизма печати или отображения курсора на одну позицию вперед.
Третья группа из 32 символов ASCII — это группа букв верхнего регистра. Коды ASCII для символов от A до Z находятся в диапазоне от 41H до 5AH. Поскольку различных буквенных символов всего 26, остальные шесть кодов содержат различные специальные символы.
Четвертая группа из 32 кодов символов ASCII – это группа строчных буквенных символов, пяти дополнительных специальных символов и еще одного удаляемого управляющего символа.
ДЕЛ (Удалить):
Он используется для удаления нежелательных символов, а точнее, для удаления нежелательных символов.
Далее были показаны две таблицы, представляющие коды ASCII и расширенные символы. Первая таблица представляет все четыре группы различных типов описанных символов. Эта таблица представляет собой представление данных и таблицу ASCII, как показано ниже:
Представление данных и таблица кодов ASCII:
HEX |
DEC |
CHR |
CTRL |
00 |
0 |
NUL |
^@ |
01 |
1 |
SOH |
^A |
02 |
2 |
STX |
^B |
03 |
3 |
ETX |
^C |
04 |
4 |
EOT |
^D |
05 |
5 |
ENQ |
^E |
06 |
6 |
ACK |
^F |
07 |
7 |
BEL |
^G |
08 |
8 |
BS |
^H |
09 |
9 |
HT |
^I |
0A |
10 |
LF |
^J |
0B |
11 |
VT |
^K |
0C |
12 |
FF |
^L |
0D |
13 |
CR |
^M |
0E |
14 |
SO |
^N |
0F |
15 |
SI |
^O |
10 |
16 |
DLE |
^P |
11 |
17 |
DC1 |
^Q |
12 |
18 |
DC2 |
^R |
13 |
19 |
DC3 |
^S |
14 |
20 |
DC4 |
^T |
15 |
21 |
NAK |
^U |
16 |
22 |
SYN |
^V |
17 |
23 |
ETB |
^W |
18 |
24 |
CAN |
^X |
19 |
25 |
EM |
^Y |
1A |
26 |
SUB |
^Z |
1B |
27 |
ESC |
1C |
28 |
FS |
1D |
29 |
GS |
1E |
30 |
RS |
1F |
31 |
US |
HEX |
DEC |
CHR |
20 |
32 |
SP |
21 |
33 |
! |
22 |
34 |
" |
23 |
35 |
# |
24 |
36 |
$ |
25 |
37 |
% |
26 |
38 |
& |
27 |
39 |
' |
28 |
40 |
( |
29 |
41 |
) |
2A |
42 |
* |
2B |
43 |
+ |
2C |
44 |
, |
2D |
45 |
- |
2E |
46 |
. |
2F |
47 |
/ |
30 |
48 |
0 |
31 |
49 |
1 |
32 |
50 |
2 |
33 |
51 |
3 |
34 |
52 |
4 |
35 |
53 |
5 |
36 |
54 |
6 |
37 |
55 |
7 |
38 |
56 |
8 |
39 |
57 |
9 |
3A |
58 |
: |
3B |
59 |
; |
3C |
60 |
< |
3D |
61 |
= |
3E |
62 |
> |
3F |
63 |
? |
HEX |
DEC |
CHR |
40 |
64 |
@ |
41 |
65 |
A |
42 |
66 |
B |
43 |
67 |
C |
44 |
68 |
D |
45 |
69 |
E |
46 |
70 |
F |
47 |
71 |
G |
48 |
72 |
H |
49 |
73 |
I |
4A |
74 |
J |
4B |
75 |
K |
4C |
76 |
L |
4D |
77 |
M |
4E |
78 |
N |
4F |
79 |
O |
50 |
80 |
P |
51 |
81 |
Q |
52 |
82 |
R |
53 |
83 |
S |
54 |
84 |
T |
55 |
85 |
U |
56 |
86 |
V |
57 |
87 |
W |
58 |
88 |
X |
59 |
89 |
Y |
5A |
90 |
Z |
5B |
91 |
[ |
5C |
92 |
\ |
5D |
93 |
] |
5E |
94 |
^ |
5F |
95 |
_ |
HEX |
DEC |
CHR |
60 |
96 |
` |
61 |
97 |
a |
62 |
98 |
b |
63 |
99 |
c |
64 |
100 |
d |
65 |
101 |
e |
66 |
102 |
f |
67 |
103 |
g |
68 |
104 |
h |
69 |
105 |
i |
6A |
106 |
j |
6B |
107 |
k |
6C |
108 |
l |
6D |
109 |
m |
6E |
110 |
n |
6F |
111 |
o |
70 |
112 |
p |
71 |
113 |
q |
72 |
114 |
r |
73 |
115 |
s |
74 |
116 |
t |
75 |
117 |
u |
76 |
118 |
v |
77 |
119 |
w |
78 |
120 |
x |
79 |
121 |
y |
7A |
122 |
z |
7B |
123 |
{[} |
7C |
124 |
| |
7D |
125 |
} |
7E |
126 |
~ |
7F |
127 |
DEL |
В следующей таблице показан набор из 128 специальных символов ASCII, которые часто называют расширенными символами ASCII:
HEX |
DEC |
CHR |
80 |
128 |
Ç |
81 |
129 |
ü |
82 |
130 |
é |
83 |
131 |
â |
84 |
132 |
ä |
85 |
133 |
à |
86 |
134 |
å |
87 |
135 |
ç |
88 |
136 |
ê |
89 |
137 |
ë |
8A |
138 |
è |
8B |
139 |
ï |
8C |
140 |
î |
8D |
141 |
ì |
8E |
142 |
Ä |
8F |
143 |
Å |
90 |
144 |
É |
91 |
145 |
æ |
92 |
146 |
Æ |
93 |
147 |
ô |
94 |
148 |
ö |
95 |
149 |
ò |
96 |
150 |
û |
97 |
151 |
ù |
98 |
152 |
ÿ |
99 |
153 |
Ö |
9A |
154 |
Ü |
9B |
155 |
¢ |
9C |
156 |
£ |
9D |
157 |
¥ |
9E |
158 |
₧ |
9F |
159 |
ƒ |
A0 |
160 |
á |
A1 |
161 |
í |
A2 |
162 |
ó |
A3 |
163 |
ú |
A4 |
164 |
ñ |
HEX |
DEC |
CHR |
A5 |
165 |
Ñ |
A6 |
166 |
ª |
A7 |
167 |
º |
A8 |
168 |
¿ |
A9 |
169 |
⌐ |
AA |
170 |
¬ |
AB |
171 |
½ |
AC |
172 |
¼ |
AD |
173 |
¡ |
AE |
174 |
« |
AF |
175 |
» |
B0 |
176 |
░ |
B1 |
177 |
▒ |
B2 |
178 |
▓ |
B3 |
179 |
│ |
B4 |
180 |
┤ |
B5 |
181 |
╡ |
B6 |
182 |
╢ |
B7 |
183 |
╖ |
B8 |
184 |
╕ |
B9 |
185 |
╣ |
BA |
186 |
║ |
BB |
187 |
╗ |
BC |
188 |
╝ |
BD |
189 |
╜ |
BE |
190 |
╛ |
BF |
191 |
┐ |
C0 |
192 |
└ |
C1 |
193 |
┴ |
C2 |
194 |
┬ |
C3 |
195 |
├ |
C4 |
196 |
─ |
C5 |
197 |
┼ |
C6 |
198 |
╞ |
C7 |
199 |
╟ |
C8 |
200 |
╚ |
C9 |
201 |
╔ |
HEX |
DEC |
CHR |
CA |
202 |
╩ |
CB |
203 |
╦ |
CC |
204 |
╠ |
CD |
205 |
═ |
CE |
206 |
╬ |
CF |
207 |
╧ |
D0 |
208 |
╨ |
D1 |
209 |
╤ |
D2 |
210 |
╥ |
D3 |
211 |
╙ |
D4 |
212 |
╘ |
D5 |
213 |
╒ |
D6 |
214 |
╓ |
D7 |
215 |
╫ |
D8 |
216 |
╪ |
D9 |
217 |
┘ |
DA |
218 |
┌ |
DB |
219 |
█ |
DC |
220 |
▄ |
DD |
221 |
▌ |
DE |
222 |
▐ |
DF |
223 |
▀ |
E0 |
224 |
α |
E1 |
225 |
ß |
E2 |
226 |
Γ |
E3 |
227 |
π |
E4 |
228 |
Σ |
E5 |
229 |
σ |
E6 |
230 |
µ |
E7 |
231 |
τ |
E8 |
232 |
Φ |
E9 |
233 |
Θ |
EA |
234 |
Ω |
EB |
235 |
δ |
EC |
236 |
∞ |
ED |
237 |
φ |
EE |
238 |
Ε |
HEX |
DEC |
CHR |
EF |
239 |
∩ |
F0 |
240 |
≡ |
F1 |
241 |
± |
F2 |
242 |
≥ |
F3 |
243 |
≤ |
F4 |
244 |
⌠ |
F5 |
245 |
⌡ |
F6 |
246 |
÷ |
F7 |
247 |
≈ |
F8 |
248 |
° |
F9 |
249 |
∙ |
FA |
250 |
· |
FB |
251 |
√ |
FC |
252 |
ⁿ |
FD |
253 |
² |
FE |
254 |
■ |
FF |
255 |
|
Некоторые важные термины системы счисления, часто используемые для представления данных и хранения данных
В приведенной ниже таблице представлены различные префиксы, которые используются как дробные префиксы и как префиксы увеличения:
Байт:
Самое важное назначение байта – хранение кода символа. Мы обсуждали это ранее.
Килобайт
Технически килобайт равен 1024 байтам, но часто используется как синоним 1000 байтов. В десятичной системе килограмм означает 1000, а в двоичной системе килограмм равен 1024 (210).
Килобайт обычно обозначается K или Kb. Чтобы различать десятичную K (1000) и двоичную K (1024), стандарт IEEE (Институт инженеров по электротехнике и электронике) предложил следовать соглашению об использовании маленькой буквы k для десятичной единицы и большой K для двоичной единицы. но это соглашение никоим образом не соблюдается строго.
Мегабайт
Мегабайт используется для описания хранения данных размером 1048576 (220) байт, но когда он используется для описания скорости передачи данных, например, в МБ/с, он относится к одному миллиону байтов. Мегабайт обычно обозначается аббревиатурой М или МБ.
Гигабайт
Гигабайт используется для описания хранения 1 073 741 824 (230) байтов, а один гигабайт равен 1024 мегабайтам. Гигабайт обычно обозначается аббревиатурой G или GB.
Терабайт
Терабайт – это 1 099 511 627 776 (240) байт, что составляет примерно 1 триллион байт. Терабайт иногда описывается как 1012 (1 000 000 000 000) байтов, что составляет ровно один триллион.
Петабайт
Петабайт описывается как 1 125 899 906 842 624 (250) байт. Петабайт равен 1024 терабайтам.
Эксабайт
Экзабайт описывается как 1 152 921 504 606 846 976 (260) байт. Эксабайт равен 1024 петабайтам.
Зеттабайт
Зеттабайт описывается как 1 180 591 620 717 411 303 424 (270) байт, что составляет приблизительно 1021 (1 000 000 000 000 000 000 000) байт. Зеттабайт равен 1024 эксабайтам.
йоттабайт
Йоттабайт описывается как 1 208 925 819 614 629 174 706 176 (280) байтов, что приблизительно равно 1024 (1 000 000 000 000 000 000 000 000) байт. Йоттабайт равен 1024 зеттабайтам.
Общие условия хранения данных
Существуют различные названия, используемые для обозначения приведенных выше терминов, различных групп битов данных. Некоторые из наиболее часто используемых перечислены в следующей таблице:
Term |
Number of Bits |
Bit / Digit / Flag |
1 |
Nibble / Nybble |
4 |
Byte / Character |
8 |
Word |
16 |
Double Word / Long Word |
32 |
Very Long Word |
64 |
Страница изменена: 15/03/2022