Машинное слово это что значит

Машинное слово

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

Размер машинного слова на различных архитектурах

На ранних компьютерах встречалась самая разная длина слова. В 1950-х — 1960-х годах во многих компьютерах, производимых в США, длина слова была кратна шести битам, поскольку там использовалась шестибитная кодировка, и, таким образом, в машинном слове умещалось целое число символов. В подавляющем большинстве современных компьютеров длина слова является степенью двойки; при этом используются 8-битные символы.

На ранних компьютерах слово было минимально адресуемой ячейкой памяти; сейчас минимально адресуемой ячейкой памяти является байт, а слово состоит из нескольких байтов. Это приводит к неоднозначному толкованию размера слова. Например, на процессорах 80386 и их потомках «словом» традиционно называют 16 бит (2 байта), хотя эти процессоры могут одновременно обрабатывать и более крупные блоки данных.

Слова длиной Машинное слово это что значит. Смотреть фото Машинное слово это что значит. Смотреть картинку Машинное слово это что значит. Картинка про Машинное слово это что значит. Фото Машинное слово это что значитбитов принимают численные (беззнаковые) значения от 0 до Машинное слово это что значит. Смотреть фото Машинное слово это что значит. Смотреть картинку Машинное слово это что значит. Картинка про Машинное слово это что значит. Фото Машинное слово это что значитвключительно.

ГодАрхитектураРазмер слова
(w), битов
Размер целогоРазмер чисел
с плавающей запятой
Размер инструкции
1952IBM 70136½w, w½w
1954IBM 70436www
1960PDP-118ww
1960CDC 160448ww½w
1964CDC 660060ww¼w, ½w, w
1965IBM 36032½w, w,
1d … 31d
w, 2w½w, w, 1½w
1965PDP-812ww
1968БЭСМ-648ww, 2w½w
1970IBM 37032½w, w,
1d … 31d
w, 2w, 4w½w, w, 1½w
1970PDP-1116½w, w2w, 4ww, 2w, 3w
1971Intel 40044w, d2w, 4w
1972Intel 80088w, 2dw, 2w, 3w
1974Intel 80808w, 2w, 2dw, 2w, 3w
1975Cray-16424 b, ww¼w, ½w
1975MOS Tech. 6501
MOS Tech. 6502
8w, 2dw, 2w, 3w
1976Zilog Z808w, 2w, 2dw, 2w, 3w, 4w
1978
(1980)
Intel 8086
(w/Intel 8087)
16½w, w, 2d
(w, 2w, 4w)

(2w, 4w, 5w, 17d)
½w, w, … 7w
1978VAX-11/78032¼w, ½w, w, 1d, … 31d, 1b, … 32bw, 2w¼w, … 14¼w
1979Motorola 6800032¼w, ½w, w, 2d½w, w, … 7½w
1982
(1983)
Motorola 68020
(w/Motorola 68881)
32¼w, ½w, w, 2d
(w, 2w, 2½w)
½w, w, … 7½w
1985ARM132ww
1985MIPS3232¼w, ½w, ww, 2ww
1989Intel 8048616 (32)*½w, w, 2w, 2d
w, 2w, 4w
2w, 4w, 5w, 17d½w, w, … 7w
1989Motorola 6804032¼w, ½w, w, 2dw, 2w, 2½w½w, w, … 7½w
1991MIPS6464¼w, ½w, ww, 2ww
1991PowerPC32¼w, ½w, ww, 2ww
1992SPARC v832¼w, ½w, ww, 2ww
1994SPARC v964¼w, ½w, ww, 2ww
2000Itanium (IA-64)648 b, ¼w, ½w, w½w, w41 b
2002XScale32ww, 2w½w, w
2004Athlon 6464???

Машинное слово это что значит. Смотреть фото Машинное слово это что значит. Смотреть картинку Машинное слово это что значит. Картинка про Машинное слово это что значит. Фото Машинное слово это что значит

Обозначения: b — бит (двоичная цифра), d — децит (десятичная цифра), w — размер машинного слова, n — переменное значение.

* Для 32-битных процессоров x86: исторически машинным словом считается 16 бит, реально — 32 бита.

Источник

Машинное слово

Смотреть что такое «Машинное слово» в других словарях:

МАШИННОЕ СЛОВО — упорядоченный набор цифр, букв и т. д., хранящихся в памяти ЭВМ и воспринимаемых при обработке устройствами машины как единое слово, команда. Количество основных символов в машинном слове называется длиной слова; обычно машинное слово содержит… … Большой Энциклопедический словарь

машинное слово — Слово, определяемое числом символов либо битов, воспринимаемых компьютером как единое целое при обработке данных. Длина машинного слова, чаще всего, равна 16, 32 либо 64 разряда. Цепочка битов, представляющая машинное слово, рассматривается как… … Справочник технического переводчика

МАШИННОЕ СЛОВО — конечная последовательность единиц информации (см.), представленная в символической форме (в цифрах, буквах и т. д.), хранящаяся в ячейке памяти ЭВМ и воспринимаемая при обработке устройствами машины как единая кодовая группа (слово). Время… … Большая политехническая энциклопедия

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

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

Машинное слово — У этого термина существуют и другие значения, см. Слово (значения). Машинное слово машиннозависимая и платформозависимая величина, измеряемая в битах или байтах (тритах или трайтах), равная разрядности регистров процессора и/или разрядности … Википедия

МАШИННОЕ СЛОВО — упорядоченный набор цифр, букв и т. д., хранящихся в памяти ЭВМ и воспринимаемых при обработке устройствами машины как единое слово, команда. Кол во осн. символов в М. с. наз. длиной слова; обычно М. с. содержит целое число байтов … Большой энциклопедический политехнический словарь

МАШИННОЕ СЛОВО — упорядоченный набор цифр, букв и т.д., хранящихся в памяти ЭВМ и воспринимаемых при обработке информации как единое слово, команда. Кол во осн. симво лов в М. с. наз. длиной слова; обычно М. с. содержит целое число байтов … Естествознание. Энциклопедический словарь

СЛОВО (единица языка) — СЛОВО, одна из основных единиц языка, служащая для именования предметов, лиц, процессов, свойств. В языкознании слово рассматривается с точки зрения звукового состава; значения; морфологического строения; словообразовательного характера; участия… … Энциклопедический словарь

слово — 1. СЛОВО, а; мн. слова, слов, ам и (устар.). словеса, словес, ам; ср. 1. Единица языка, служащая для называния отдельного понятия. Повторить с. Запомнить с. Написать с. Употребить с. Перевести с. Подчеркнуть с. Искать подходящее с. Незнакомое с.… … Энциклопедический словарь

Источник

Машинное слово это что значит

· упаковка данных, архивирование. Естественно уплотнение данных производить с точностью не до байта, а до бита;

· алгоритмы сортировок и структуры данных, использующие элементы внутреннего представления хранимых данных: поразрядные сортировки, кодовые деревья;

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

· работа с растрами, битовыми картами ( bitmap). Например, для контроля свободного пространства на диске файловая система часто использует карту памяти – массив байтов, каждый разряд которого определяется состояние отдельного блока: 0 – свободен, 1 – занят.

long vv ; // Машинное слово двойной длины

for(int i=0; i // Количество разрядов в long

< … vv … >// Цикл поразрядной обработки слова

Поразрядные операции и их интерпретация

Операции, которые выполняют различные операции (в основном, логические) над отдельными разрядами машинного слова, называются поразрядными. В стандартной классификации операций по приоритетам они относятся к различным группам. В качестве операндов у них часто используются константы, именуемые масками. Маска – это константа, с определенной расстановкой единичных и нулевых разрядов. Естественно, коль скоро речь идет о двоичном представлении, то наиболее удобным является использование эквивалента в виде шестнадцатеричных констант.

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

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

Образно говоря, машинное слово – это массив двоичных разрядов, и алгоритмы работы с машинными словами в первом приближении аналогичны алгоритмам, работающим с массивами. Но с точки зрения возможных операций все обстоит с точностью до «наоборот». В «джентльменском наборе» команд процессора отсутствую команды прямой адресации битов. Взамен их используются поразрядные операции, выполняющие одну и ту же логическую операцию или операцию перемещения над всеми разрядами машинного слова одновременно. Другое их название – машинно-ориентированные операции – отражает тот факт, что они поддерживаются в любой системе команд и любом языке Ассемблера. К ним относятся:

Машинное слово это что значит. Смотреть фото Машинное слово это что значит. Смотреть картинку Машинное слово это что значит. Картинка про Машинное слово это что значит. Фото Машинное слово это что значит

Рис.91-1. Схема выполнения поразрядных операций

b = a & 0x0861; // Выделить разряды 0,5,6,11

b = a & 0x00F0; // Выделить разряды с 4 по 7

// (разряды второй цифры справа)

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

if (( a & 0 x 100)!=0) … // Установлен ли 8-ой разряд –

// (младший разряд второго по счету байта)

a |= 0x0861; // Установить в 1 разряды 0,5,6,11

a |= 0x00F0; // Установить в 1 разряды с 4 по 7

// (разряды второй цифры справа)

0x0861; // Очистить разряды 0,5,6,11, остальные сохранить

0x00F0; // Очистить разряды с 4 по 7, остальные сохранить

// (разряды второй цифры справа)

a ^= 0x0861; // Инвертировать разряды 0,5,6,11

a ^= 0x00F0; // Инвертировать разряды с 4 по 7

// (разряды второй цифры справа)

a // сдвиг влево на одну шестнадцатеричную цифру;

a = 1 // установить 1 в n-й разряд машинного слова.

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

long a =0 x 12345678; // Поменять местами две младшие цифры

int n=0xFF00; n>>=4; // n=0xFFF0;

unsigned u=0xFF00; u>>=4; // u=0x0FF0;

//— Формирование маски в заданном диапазоне разрядов

long set_mask(int r0, int dn)<

m = 1 // Сдвинуть единичный разряд на r0 разрядов влево

v |= m; // Установить очередной разряд из m в v

m // Переместить единичный бит в следу ющий разряд

//—— Определение разрядности числа

int wordlen ( unsigned long vv )<

for (int i=0; vv!=0; i++, vv>>=1);

//—— Подсчет количества единичных разрядов

int what_is_1( unsigned long n)

< if (n & 1) s++; n >>=1; > // Проверить младший разряд и сдвинуть слово

Алгоритмы поразрядной сортировки

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

//————— Поразрядная сортировка разделением

void bitsort(int A[],int a,int b, unsigned m)<

if (a >= b) return; // Интервал сжался в точку

if (m == 0) return; // Проверяемые разряды закончились

// Разделить массив на две части по значению разряда,

// установленного в маске m

int j,vv; // Цикл разделения массива

if ((A[i] & m) ==0) // Слева с разрядом =0

i++, j—; // Обмен и сдвиг границ

bitsort(A,a,j,m >>1); // Рекурсивный вызов

bitsort(A,i,b,m >>1); > // для следующего разряда

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

void mainsort(int B[], int n)<

int max,i; unsigned m;

if (B[i] > max) max = B[i];

for ( m =1; m max ; m // Единичная маска, превышающая максимум

m >>=1; // Старший разряд разделения

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

for ( m =1, i =0; i sizeof ( int )-1; i ++; m // Двигать до старшего (знакового) разряда

//—— Поразрядная лексикографическая сортировка

void sort(int in[], int n)

int * v 0= new int [ n ]; // Создать 2 «кармана»

if (in[i] > max) max=in[i];

for (m=1; m // для каждого разряда, начиная с младшего

for (i=i0=i1=0;i // распределить в 2 кармана по значению

v 0[ i 0++]= in [ i ]; // очередного разряда (двоичной цифры)

delete []v0; delete []v1;>

Машинное слово это что значит. Смотреть фото Машинное слово это что значит. Смотреть картинку Машинное слово это что значит. Картинка про Машинное слово это что значит. Фото Машинное слово это что значитПоразрядная распределяющая сортировка. Рецепт: возьмите идеи распределения по карманам, использования на каждом шаге очередного двоичного разряда, но от старшего к младшему и слияния последовательностей, то получите поразрядную распределяющую сортировку. Парадокс в том, что получаемые в карманах последовательности не являются упорядоченными, тем не менее, к ним применяется классическое слияние как для упорядоченных последовательностей. Интуитивное объяснение всего происходящего: при слиянии меньшие значения постепенно перемещаются вперед.

//—— Поразрядная распределяющая сортировка

void sort(int in[], int n)

int *v0=new int[n]; // Создать 2 «кармана»

if (in[i] > max) max=in[i]; // Определение максимального

for (m=1; m // значащего разряда

for (i0=i1=0; i0+i1 // Распределение по значению

if ((in[i0+i1] & m) ==0) // очередного разряда

for (i0=i1=0; i0+i1 // Обычное слияние

if (v0[i0] // по сравнению значений

in[i0+i1] = v0[i0], i0++; // в последовательности

in[i0+i1] = v1[i1], i1++; // max+1 играет роль ограничителя

> delete []v0; delete []v1;>

Упаковка данных полями переменной длины

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

//——— Извлечение и запись разряда (бита)

int nb = n/8; // номер байта

int ni = n%8; // номер разряда в байте

return (c[nb]>>ni) & 1; > //сдвинуть к младшему и выделить

void putbit(char c[], int &n, int v )<

int nb = n /8; // Сформировать маску разряда ni

int ni = n %8; // очистить старое по маске и установить

n ++; // новый разряд, сдвинув его в позицию ni

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

//——- Извлечение слова заданной размерности

unsigned long getword(char c[], int &n, int sz) <

void putword(char c[], int &n, int sz, long v)<

//—- Упаковка и распаковка переменных различной размерности

case 0: return ; // 00 – конец последовательности

if(vv==0) putword(c,n,2,0); // запись 2-разрядного кода 00

else if (vv putword(c,n,2,1); // запись 2-разрядного кода 01

putword(c,n,8,vv);> // запись 8-разрядного кода числа

else if (vv putword(c,n,2,2); // запись 2-разрядного кода 10

putword(c,n,16,vv);> // запись 16-разрядного кода числа

putword(c,n,2,3); // запись 2-разрядного кода 11

putword(c,n,32,vv);> // запись 32-разрядного кода числа

Машинная арифметика произвольной точности

Для понимания ниже изложенного материала необходимо детально проработать п. «1.3. Описание данных. Типы данных и переменные» в той его части, которая касается двоичной и шестнадцатеричной систем счисления, машинных слов и основ внутреннего представления данных.

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

Операция сложения выполняется побайтно. Возникающий при сложении двух байтов перенос (8-й разряд, выделяемый маской 0x0100) используется в операции сложения следующих двух байтов.

//——Сложение целых произвольной разрядности

typedef unsigned char uchar;

void add(uchar out[], uchar in1[], uchar in2[], int n)

unsigned w; // Рабочая переменная для сложения двух байтов

out [i] = w = in1[i]+in2[i]+carry;

carry = (w & 0x0100) >>8; // Разряд переноса сдвинуть вправо на 8

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

long a=125000, b=30000, c;

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

//—— Получение отрицательного числа в дополнительном коде

typedef unsigned char uchar;

void neg(uchar in[], int n)

unsigned w; // Рабочая переменная для сложения двух байтов

for (i=0; i // Инвертированин всех разрядов

in [i] = w = in[i]+carry; // установкой переноса в 1

Для моделирования операции умножения необходимо реализовать операции сдвига на 1 разряд влево и вправо.

//——Сдвиг целых произвольной разрядности

void lshift(uchar in[], int n)

z =( in [ i ] & 0 x 80)>>7; // Выделить старший разряд (перенос)

in[i] // Сдвинуть влево и установить

in[i] |=carry; // старый перенос в младший разряд

carry = z; // Запомнить новый перенос

void rshift(uchar in[], int n) // Сдвиг арифметический

z = in[i] & 1; // Выделить младший разряд (перенос)

in[i] >>= 1; // Сдвинуть вправо и установить

in[i] |= carry // старый перенос в старший разряд

carry = z; // Запомнить новый перенос

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

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

cc = aa*bb = aa * Σ bbi * 2 i = Σ bbi *(aa * 2 i )

//——Умножение целых произвольной разрядности

void mul(uchar out[], uchar aa[], uchar bb[], int n)

for (i=0; i // Цикл по количеству разрядов

if (bb[0] & 1 ) // Разряд множителя равен 1

add(out,out,aa,n); // Добавить множимое к произведению

Арифметика в других формах представления данных

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

Например, число 17665 выглядит в этих формах представления следующим образом :

long ss=0x00017655; // или

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

//—— Инкремент числа во внешней форме представления

for (int i=0; s[i]!=0; i++); // Поиск конца строки

if ( s [ n ]==’9′ ) // 9 превращается в 0

else < s [ n ]++; return ; >> // добавить 1 к цифре и выйти

for (s[i+1]=0; i>0; i—) s[i]=’0′ ; // Записать в строку 1000.

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

//—— Сложение чисел во внешней форме представления

void add(char out[],char c1[],char c2[])<

int l 1= strlen ( c 1)-1; // Определение разрядности суммы

int l 2= strlen ( c 2)-1; // и индексов младших цифр слагаемых

int l=l1; if (l2>l1) l=l2;

l ++; out [ l +1]=0; // В сумме на 1 цифру больше

v = v 1+ v 2+ carry ; // Сложение с учетом входного

else carry =0; // переноса (во внутренней форме)

out [ l ]= v +’0′; // Запись цифры результата

Лабораторный практикум

1. Программа деления целых чисел произвольной длины во внутреннем представлении с использованием операций вычитания, инкремента и проверки на знак результата. Частное определяется как количество вычитаний делителя из делимого до появления отрицательного результата (проверить на переменных типа long).

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

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

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

7. Вычитание чисел произвольной длины, представленных непосредственно строками цифр с использованием дополнительного кода вычитаемого (в десятичной системе счисления).

13. Первые 15 наиболее часто встречающихся символов кодируются 4-битными кодами от 0000 до 1110. Код 1111 обозначает, что следующие за ним 8 бит кодируют один из остальных символов. Разработать функции упаковки и распаковки строки с определением наиболее часто встречающихся символов и коэффициента уплотнения.

Вопросы без ответов

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

Источник

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

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