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

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

Содержание

Беззнаковое представление целых чисел в компьютере

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

В беззнаковом формате число представляется последовательностью битов фиксированной длины, обычно 8, 16, 32 или 64 бита. Каждый бит может принимать значение 0 или 1. Значение числа определяется как сумма степеней двойки, соответствующих позициям единичных битов.

Как представить десятичное число в беззнаковом двоичном формате?

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

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

Например, представим число 61 в 8-разрядном беззнаковом формате:


  1. 61 в двоичной системе: 111101
  2. Дополняем до 8 разрядов: 00111101

Таким образом, 61 в 8-разрядном беззнаковом формате: 00111101

Диапазон значений в беззнаковом формате

Диапазон значений, которые можно представить в беззнаковом формате, зависит от количества разрядов. Для n-разрядного представления:

  • Минимальное значение: 0 (все биты равны 0)
  • Максимальное значение: 2^n — 1 (все биты равны 1)

Например, для 8-разрядного беззнакового формата:

  • Минимальное значение: 0 (00000000)
  • Максимальное значение: 255 (11111111)

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

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

Что такое прямой код числа?

В прямом коде старший (левый) бит отводится под знак числа:

  • 0 — для положительных чисел
  • 1 — для отрицательных чисел

Остальные биты содержат абсолютное значение числа в двоичной системе.

Как записать число в прямом коде?

  1. Определите знак числа
  2. Переведите модуль числа в двоичную систему
  3. Дополните результат нулями слева до нужной разрядности
  4. Установите старший бит в соответствии со знаком числа

Например, запишем число -61 в 8-разрядном формате со знаком:


  1. Знак отрицательный, значит старший бит будет 1
  2. 61 в двоичной системе: 111101
  3. Дополняем до 7 разрядов: 0111101
  4. Добавляем знаковый бит: 10111101

Таким образом, -61 в 8-разрядном формате со знаком: 10111101

Перевод чисел между системами счисления

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

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

Чтобы перевести число из двоичной системы в десятичную:

  1. Умножьте каждую цифру двоичного числа на соответствующую степень двойки (начиная с 2^0 для крайней правой цифры)
  2. Сложите полученные результаты

Например, переведем 10111101 из двоичной системы в десятичную:

1*2^7 + 0*2^6 + 1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 =
128 + 0 + 32 + 16 + 8 + 4 + 0 + 1 = 189

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

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

  1. Последовательно делите число на 2
  2. Записывайте остатки от деления (0 или 1) справа налево
  3. Продолжайте, пока частное не станет равным 0

Например, переведем 125 из десятичной системы в двоичную:


  • 125 / 2 = 62 остаток 1
  • 62 / 2 = 31 остаток 0
  • 31 / 2 = 15 остаток 1
  • 15 / 2 = 7 остаток 1
  • 7 / 2 = 3 остаток 1
  • 3 / 2 = 1 остаток 1
  • 1 / 2 = 0 остаток 1

Записывая остатки справа налево, получаем: 1111101

Экспоненциальная форма представления чисел

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

Как записать число в экспоненциальной форме?

Чтобы записать число в экспоненциальной форме:

  1. Определите мантиссу — число от 1 до 10
  2. Определите порядок — степень 10, на которую нужно умножить мантиссу
  3. Запишите число в виде: мантисса * 10^порядок

Например, запишем число 12345 в экспоненциальной форме:

12345 = 1.2345 * 10^4

Как перевести число из экспоненциальной формы в обычную?

Для перевода числа из экспоненциальной формы в обычную:

  1. Умножьте мантиссу на 10 в степени, равной порядку

Например, переведем 1.235 * 10^3 в обычную форму:

1.235 * 10^3 = 1.235 * 1000 = 1235


Особенности представления чисел в компьютерных системах

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

  • Ограниченный диапазон значений из-за фиксированного количества разрядов
  • Возможность переполнения при выходе за пределы допустимого диапазона
  • Потеря точности при работе с вещественными числами
  • Различия в представлении чисел на разных платформах и в разных языках программирования

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

Применение различных форматов представления чисел

Разные форматы представления чисел используются в различных ситуациях:

  • Беззнаковый формат: для хранения размеров, индексов, счетчиков
  • Знаковый формат: для представления чисел, которые могут быть как положительными, так и отрицательными
  • Экспоненциальная форма: для работы с очень большими или очень маленькими числами в научных расчетах

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



8

помогите пожалуйста информатикиочень срочно​

совместима ли, gtx 1050ti, c Intel core i5 9400-F?​

Задача по информатике. Решите, пожалуйста. Ерунду прошу не писать. Даю 20 баллов + 10 за хороший ответ

Что будет нарисовано после выполнения Чертёжником алгоритма?

Приветь) Помогите пожалуйста)) Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по … сторонам) клетками может стоять стена, через которую Робот пройти не может. У Робота есть девять команд. Четыре команды — это команды-приказы: вверх вниз влево вправо При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑ вниз ↓, влево ← , вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится. Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент. Ещё четыре команды — это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений: сверху свободно снизу свободно слева свободно справа свободно Эти команды можно использовать вместе с условием «если», имеющим следующий вид: если условие то последовательность команд все Здесь условие — одна из команд проверки условия. Последовательность команд — это одна или несколько любых команд-приказов. Например, для передвижения на одну клетку вправо, если справа нет стенки, и закрашивания клетки можно использовать такой алгоритм: если справа свободно то вправо закрасить все В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например: если (справа свободно) и (не снизу свободно) то вправо все Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид: нц пока условие последовательность команд кц Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм: нц пока справа свободно вправо кц Выполните задание. На бесконечном поле имеется лестница. Сначала лестница поднимается вверх слева направо, потом опускается вниз также слева направо. Правее спуска лестница переходит в горизонтальную стену. Высота каждой ступени — 1 клетка, ширина — 1 клетка. Количество ступенек, ведущих вверх, и количество ступенек, ведущих вниз, неизвестно. Между спуском и подъемом ширина площадки — 1 клетка. Робот находится в клетке, расположенной в начале спуска. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р») . Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно над лестницей. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок). Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе. Сохраните алгоритм в текстовом файле.

ДАЮ ПЯТДЕСЯТ БАЛОВ СРОЧНО! Разработать программу, получающую от пользователя 3 натуральных числа А, В и С, выводящую их значения на консоль, а затем в … ыполняющую «сдвиг» значений (то, что было в А, должно стать значением В, то, что было в В – С, а то, что было в С – А) и снова выводящую их значения на консоль. На Python

«Представление целых чисел». (8 класс)

8 класс: «Представление целых чисел»

Образовательные цели:

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

(Например, перевод чисел с 2-ой с.с. в 10-ую и наоборот)

Обучающие должны уметь: представлять целые числа (без знаковое представление целых чисел и представление целых чисел со знаком).

Воспитательные задачи: Содействовать развитие индивидуальной и коллективной работы (способствовать развитию культуры взаимоотношений при работе в коллективе). Развитие внимания.

Развивающие задачи: Содействовать развитию умения обобщать, анализировать, проводить самоконтроль и самооценку.

Мобилизующее начало урока

Предварительная организация класса.

Цели:

  • Психологическая настройка обучающихся на последующее занятие.

  • Обеспечение нормальной обстановки на уроке.

Приветствие обучающих.

Проверка отсутствующих.
Проверка рабочих мест и внешнего вида обучающих.

Организация внимания.

Счет и вычисления — основа порядка в голове. (Песталоцци)

Иоганн Генрих Песталоцци (12 января 1746, Цюрих — 17 февраля 1827, Бругг) — швейцарский педагог, один из крупнейших педагогов-гуманистов конца XVIII — начала XIX века, внёсший значительный вклад в развитие педагогической теории и практики.

Приветствие учителя.

Готовность к уроку.

Актуализация знаний (повторение)

Давайте вспомним материал прошлого урока. Что мы с вами делали?

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

Переводили десятичные числа в другие с.с.

Перевод не десятичных чисел в 10-ую с.с.

Изучение нового материала на уроке

Цели:

  • Усвоение фактов и основных идей

  • Освоение метода изучаемого материала

  • Овладение методикой воспроизведение изучаемого материала.

Давайте запишем тему урока:
«Представление целых чисел».

Цель нашего сегодняшнего урока:

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

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

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

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

  

Обрати внимание!

Беззнаковое представление можно использовать только для неотрицательных целых чисел, отрицательные числа представляются только в знаковом виде.

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

Для n-разрядного представления оно будет равно 2n−1 . Минимальное число соответствует n нулям, хранящимся в n разрядах памяти, и равно нулю.

Ниже приведены максимальные значения для беззнаковых целых n-разрядных чисел:

Обрати внимание!

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

Число 5310=1101012 в восьмиразрядном представлении имеет вид:

 

Это же число 53 в шестнадцати разрядах будет записано следующим образом:

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

Если число положительное, то в знаковый разряд помещается 0, если число отрицательное — 1. Такое представление чисел называется прямым кодом. В компьютере прямые коды используются для хранения положительных чисел в запоминающих устройствах, для выполнения операции с положительными числами.

Слушают объяснение нового материала, записывают.

Закрепление пройденного на уроке

Цель: прочное усвоение знаний

Задание 1

Представьте десятичные числа в беззнаковом 8-ричном формате:

Ответ: Задание 2

Запишите прямой код десятичных чисел в 8-разрядном формате со знаком:

Ответ:

Задание 3

Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

Ответ: +10101012 = +8510

-11110002= — 120

Одно выполненное задание оценивается на один +. Собрав 3 плюса обучающий получает оценку 5.

Решение заданий

Контроль и оценка знаний обучающихся.

Контроль и самоконтроль

Решение самостоятельной работы.

Самостоятельная работа

Интерактивное задание (схема состав)

Домашнее задание

Цели:

§ 1.2.1. стр. 21, № 4, 5, 6

Записывают домашнее задание.

Обобщение и систематизация знаний.

Цель:

Выработка системы знаний, умений, навыков, способностей, качеств.

Повторное обобщение работы.

Итоговое повторение.

(Отвечают)

Вывод

Вывод: Научились понимать способы представления целых чисел на компьютере.

Формируют вывод урока.

Самостоятельная работа по информатике по теме «Представление чисел в компьютере» (8 класс)

Проверочная работа «Представление чисел в компьютере»: Вариант 1

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 55

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 255

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +70 и -70

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 1,235*103; 0,147*10-2; 23,25*105

6. Запишите следующие числа в экспоненциальной форме: 12345; 1472; 0,00654

Проверочная работа «Представление чисел в компьютере»: Вариант 2

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 56

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 256

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +71 и -71

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 0,0156*104; 3654*10-3; 954,55*10-3

6. Запишите следующие числа в экспоненциальной форме: 0,00895; 54123; 2581

Проверочная работа «Представление чисел в компьютере»: Вариант 3

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 57

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 257

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +72 и -72

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 2547*10-5; 0,002458*103; 0,01247*10-2

6. Запишите следующие числа в экспоненциальной форме: 3654; 0,001478; 0,02345

Проверочная работа «Представление чисел в компьютере»: Вариант 4

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 58

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 258

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +73 и -73

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 0,00147*10-3; 6512*10-4; 0,12478*103

6. Запишите следующие числа в экспоненциальной форме: 4587; 0,009657; 6201

Проверочная работа «Представление чисел в компьютере»: Вариант 5

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 59

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 259

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +74 и -74

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 0,325*103; 4521*10-4; 1295*102

6. Запишите следующие числа в экспоненциальной форме: 0,0875; 1235; 7893

Проверочная работа «Представление чисел в компьютере»: Вариант 6

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 60

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 260

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +75 и -75

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 2547*10-3; 0,001478*103; 0,01236*102

6. Запишите следующие числа в экспоненциальной форме: 3258; 0,01789; 5412

Проверочная работа «Представление чисел в компьютере»: Вариант 7

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 61

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 261

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +76 и -76

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 231896*10-5; 23158*102; 0,02536*104

6. Запишите следующие числа в экспоненциальной форме: 124587; 0,32165; 98620

Проверочная работа «Представление чисел в компьютере»: Вариант 8

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 62

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 262

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +77 и -77

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 32198*10-2; 0,1247*105; 0,0745*10-2

6. Запишите следующие числа в экспоненциальной форме: 20158; 0,06512; 65014

Проверочная работа «Представление чисел в компьютере»: Вариант 9

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 63

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 263

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +78 и -78

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 6301*10-3; 0,5201*103; 0,014*10-2

6. Запишите следующие числа в экспоненциальной форме: 235401; 0,04789; 32014

Проверочная работа «Представление чисел в компьютере»: Вариант 10

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 64

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 264

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +79 и -79

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 0,325*102; 541035*10-5; 0,0147*10-2

6. Запишите следующие числа в экспоненциальной форме: 985301; 0,45201; 96478

Проверочная работа «Представление чисел в компьютере»: Вариант 11

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 65

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 265

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +80 и -80

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 0,02541*10-2; 12703*102; 0,06304*104

6. Запишите следующие числа в экспоненциальной форме: 0,01257; 325698; 12587

Проверочная работа «Представление чисел в компьютере»: Вариант 12

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 66

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 266

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +81 и -81

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 0,001325*104; 8652*10-2; 452047*10-3

6. Запишите следующие числа в экспоненциальной форме: 30148; 0,0782; 65214

Проверочная работа «Представление чисел в компьютере»: Вариант 13

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 67

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 267

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +82 и -82

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 203504*10-3; 0,0236*103; 0,0147*10-2

6. Запишите следующие числа в экспоненциальной форме: 402501; 0,023512; 9853

Проверочная работа «Представление чисел в компьютере»: Вариант 14

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 68

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 268

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +83 и -83

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 214601*10-3; 0,0325*10-2; 0,03985*104

6. Запишите следующие числа в экспоненциальной форме: 65412; 0,5874; 0,00456

Проверочная работа «Представление чисел в компьютере»: Вариант 15

1. Представьте десятичное число в беззнаковом 8- разрядном формате: 69

2. Представьте десятичное число в беззнаковом 16- разрядном формате: 269

3. Запишите прямой код десятичных чисел в 8-разрядном формате со знаком: +84 и -84

4. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком

5. Запишите следующие числа в естественной форме: 0,7514*104; 24015*10-2; 69018*10-3

6. Запишите следующие числа в экспоненциальной форме: 456201; 0,09621; 780263

Дидактический материал для оценки знаний учащихся 8х классов по теме «Представление чисел в компьютере» | Материал для подготовки к ЕГЭ (ГИА) по информатике и икт (8 класс):

Вариант 1

1. Укажите десятичный эквивалент числа, прямой код которого 11001100 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 256                b) 11А16        c) 1010102        d) 438

3. Беззнаковым 8-разрядным представлением числа 63 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11010100 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -111.

Вариант 2

1. Укажите десятичный эквивалент числа, прямой код которого 10101100 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 738                b) 13С16        c) 1010102        d) 266

3. Беззнаковым 8-разрядным представлением числа 73 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011100 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -115.

Вариант 3

1. Укажите десятичный эквивалент числа, прямой код которого 10111100 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 21С16        b) 257                c) 1110112        d) 638

3. Беззнаковым 8-разрядным представлением числа 68 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11010110 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -101.

Вариант 4

1. Укажите десятичный эквивалент числа, прямой код которого 11011010 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а)        1011102        b) 1С116                c) 259                d) 538

3. Беззнаковым 8-разрядным представлением числа 59 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11010111 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -113.

Вариант 5

1. Укажите десятичный эквивалент числа, прямой код которого 11001110 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 256                b) 21А16        c) 1011102        d) 338

3. Беззнаковым 8-разрядным представлением числа 61 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11010101 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -103.

Вариант 6

1. Укажите десятичный эквивалент числа, прямой код которого 10111100 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 6618                b) 9С16         c) 1011112        d) 366

3. Беззнаковым 8-разрядным представлением числа 71 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011110 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -105.

Вариант 7

1. Укажите десятичный эквивалент числа, прямой код которого 10100101 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 12С16        b) 157                c) 111111102                d) 338

3. Беззнаковым 8-разрядным представлением числа 65 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11110110 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -91.

Вариант 8

1. Укажите десятичный эквивалент числа, прямой код которого 10111010 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 1001112        b) А1116                c) 159                d) 4008

3. Беззнаковым 8-разрядным представлением числа 59 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011011 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -73.

Вариант 9

1. Укажите десятичный эквивалент числа, прямой код которого 10111100 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 156                b) 51А16        c) 1110101002                d) 138

3. Беззнаковым 8-разрядным представлением числа 93 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11010111 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -71.

Вариант 10

1. Укажите десятичный эквивалент числа, прямой код которого 10101011 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 11138                b) 30С16                c) 1110102        d) 244

3. Беззнаковым 8-разрядным представлением числа 39 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011110 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -47.

Вариант 11

1. Укажите десятичный эквивалент числа, прямой код которого 101111010 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) FВ16                b) 277                c) 1010110112        d) 538

3. Беззнаковым 8-разрядным представлением числа 54 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11110110 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -81.

Вариант 12

1. Укажите десятичный эквивалент числа, прямой код которого 10010011 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 1000011102                b) 5С116                c) 199                d) 578

3. Беззнаковым 8-разрядным представлением числа 66 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011111 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -33.

Вариант 13

1. Укажите десятичный эквивалент числа, прямой код которого 10110111 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 333                b) 1А16        c) 1000010102                d) 438

3. Беззнаковым 8-разрядным представлением числа 63 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011100 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -114.

Вариант 14

1. Укажите десятичный эквивалент числа, прямой код которого 10110101 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 778                b) 13В16        c) 1111110102                d) 166

3. Беззнаковым 8-разрядным представлением числа 73 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011010 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -125.

Вариант 15

1. Укажите десятичный эквивалент числа, прямой код которого 10100001 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 22216                b) 157                c) 100112        d) 6138

3. Беззнаковым 8-разрядным представлением числа 68 является:

4. Укажите десятичный эквивалент числа, прямой код которого 1011\00110 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -98.


1

2

3

4

5

Вар 1

-76

c d

00111111

212

11101111

Вар 2

-88

a c

01001001

220

11110011

Вар 3

-60

c d

01000100

214

11100101

Вар 4

-90

a d

00111011

215

11110001

Вар 5

-78

c d

00111101

213

11100111

Вар 6

-60

b c

01000111

222

11101001

Вар 7

-37

b d

01000001

246

11011011

Вар 8

-58

a c

00111011

219

11001001

Вар 9

-60

a d

01011101

215

11000111

Вар 10

-43

c d

00100111

222

10111101

Вар 11

-122

a d

00110110

246

10100010

Вар 12

-19

c d

01000010

223

10100001

Вар 13

-55

b d

00111111

220

11100001

Вар 14

-53

a d

01001001

218

11111001

Вар 15

-33

b c

01000100

166

11100010

Дидактический материал по теме «Представление чисел в компьютере. 8 класс»

Вариант 1

1. Укажите десятичный эквивалент числа, прямой код которого 11001100 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 256              b) 11А16         c) 1010102      d) 438

3. Беззнаковым 8-разрядным представлением числа 63 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11010100 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -111.

 

 

Вариант 2

1. Укажите десятичный эквивалент числа, прямой код которого 10101100 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 738              b) 13С16          c) 1010102      d) 266

3. Беззнаковым 8-разрядным представлением числа 73 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011100 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -115.

 

 

Вариант 3

1. Укажите десятичный эквивалент числа, прямой код которого 10111100 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 21С16          b) 257              c) 1110112      d) 638

3. Беззнаковым 8-разрядным представлением числа 68 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11010110 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -101.

 

 

Вариант 4

1. Укажите десятичный эквивалент числа, прямой код которого 11011010 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а)         1011102          b) 1С116                     c) 259              d) 538

3. Беззнаковым 8-разрядным представлением числа 59 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11010111 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -113.

 

 

Вариант 5

1. Укажите десятичный эквивалент числа, прямой код которого 11001110 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 256              b) 21А16         c) 1011102      d) 338

3. Беззнаковым 8-разрядным представлением числа 61 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11010101 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -103.

 

 

Вариант 6

1. Укажите десятичный эквивалент числа, прямой код которого 10111100 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 6618            b) 9С16            c) 1011112      d) 366

3. Беззнаковым 8-разрядным представлением числа 71 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011110 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -105.

 

 

Вариант 7

1. Укажите десятичный эквивалент числа, прямой код которого 10100101 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 12С16          b) 157             c) 111111102              d) 338

3. Беззнаковым 8-разрядным представлением числа 65 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11110110 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -91.

 

 

Вариант 8

1. Укажите десятичный эквивалент числа, прямой код которого 10111010 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 1001112      b) А1116                     c) 159              d) 4008

3. Беззнаковым 8-разрядным представлением числа 59 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011011 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -73.

 

Вариант 9

1. Укажите десятичный эквивалент числа, прямой код которого 10111100 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 156              b) 51А16         c) 1110101002             d) 138

3. Беззнаковым 8-разрядным представлением числа 93 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11010111 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -71.

 

 

Вариант 10

1. Укажите десятичный эквивалент числа, прямой код которого 10101011 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 11138                      b) 30С16                         c) 1110102      d) 244

3. Беззнаковым 8-разрядным представлением числа 39 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011110 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -47.

 

 

Вариант 11

1. Укажите десятичный эквивалент числа, прямой код которого 101111010 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) FВ16             b) 277             c) 1010110112d) 538

3. Беззнаковым 8-разрядным представлением числа 54 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11110110 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -81.

 

 

Вариант 12

1. Укажите десятичный эквивалент числа, прямой код которого 10010011 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 1000011102             b) 5С116                     c) 199              d) 578

3. Беззнаковым 8-разрядным представлением числа 66 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011111 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -33.

 

Вариант 13

1. Укажите десятичный эквивалент числа, прямой код которого 10110111 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 333              b) 1А16           c) 1000010102             d) 438

3. Беззнаковым 8-разрядным представлением числа 63 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011100 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -114.

 

 

Вариант 14

1. Укажите десятичный эквивалент числа, прямой код которого 10110101 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 778              b) 13В16          c) 1111110102             d) 166

3. Беззнаковым 8-разрядным представлением числа 73 является:

4. Укажите десятичный эквивалент числа, прямой код которого 11011010 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -125.

 

 

Вариант 15

1. Укажите десятичный эквивалент числа, прямой код которого 10100001 записан в 8-разрядном формате со знаком.

2. Какие из чисел можно сохранить в 8-разрядном беззнаковом формате?

а) 22216                       b) 157             c) 100112        d) 6138

3. Беззнаковым 8-разрядным представлением числа 68 является:

4. Укажите десятичный эквивалент числа, прямой код которого 1011\00110 записан в 8-разрядном формате без знака.

5. Укажите 8-разрядное представление числа -98.

 

 


 

 

 

 

 

1

2

3

4

5

Вар 1

-76

c d

00111111

212

11101111

Вар 2

-88

a c

01001001

220

11110011

Вар 3

-60

c d

01000100

214

11100101

Вар 4

-90

a d

00111011

215

11110001

Вар 5

-78

c d

00111101

213

11100111

Вар 6

-60

b c

01000111

222

11101001

Вар 7

-37

b d

01000001

246

11011011

Вар 8

-58

a c

00111011

219

11001001

Вар 9

-60

a d

01011101

215

11000111

Вар 10

-43

c d

00100111

222

10111101

Вар 11

-122

a d

00110110

246

10100010

Вар 12

-19

c d

01000010

223

10100001

Вар 13

-55

b d

00111111

220

11100001

Вар 14

-53

a d

01001001

218

11111001

Вар 15

-33

b c

01000100

166

11100010

 

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


Примерные вопросы для подготовки к контрольной работе за полугодие 9 класс.

Системы счисления.


  1. Что такое система счисления?

  2. Что такое цифры?

  3. Что такое основание?

  4. Каково главное отличие непозиционных систем счисления от позиционных?

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

    MCXLVII

    MDCCCXII

    MCMXLV

    MMXIV

  6. Чему равен результат сложения двух чисел, записанных римскими цифрами: МСМ + LXVIII?

а)1168 б) 1968 в)2168 г)1153

  1. Запишите наименьшее основание системы счисления, в которой могут быть записаны следующие числа: 9, 122, 14, 100, 7, 102

  1. Запишите в развернутом виде следующие числа:

а) А10 = 1997,25;

б) A16 = 918;

в) А8 = 145;

г) A2 = 101010.


  1. Переведите в десятичную систему числа: 20148, 20146, 20145 , 1000011002

  1. Переведите число 137 из десятичной в двоичную, троичную, восьмеричную, двенадцатеричную системы счисления.

  1. В группе 1100 девочек и 1110 мальчиков (числа записаны в двоичной системе счисления). Сколько учеников в группе?

  2. Сколько цифр 1 в двоичном представлении десятичного числа 15?

  3. Вычислите х, для которых верны равенства:

12x =910 3х =1510

  1. Выполните действия и сделайте проверку:

10102 + 11112 10012 х 1012

Представление информации в ЭВМ


  1. Ячейка памяти компьютера состоит из однородных элементов, называемых…

кодами разрядами цифрами коэффициентами

  1. Сколько разрядов занимает двухбайтовое число?

  2. Что заносится в знаковый разряд для отрицательных чисел?

  3. Вещественные числа представляются в компьютере в:

    1. естественной форме

    2. развёрнутой форме

    3. нормальной форме с нормализованной мантиссой

    4. виде обыкновенной дроби

  1. Запишите число 148,810 тремя различными способами в форме с плавающей запятой.

  2. Запишите числа в естественной форме:

а) 128,3 Е+05; б) 0.789Е-4.

  1. Нормализуйте мантиссу в числах:

а) 0,0041 х102; б) -16,78 х10-3.

  1. Представьте десятичное число 61 в беззнаковом 8-разрядном формате.

  2. Запишите прямой, обратный и дополнительный коды для десятичного числа -62.

Основы логики


  1. Что такое логика? Откуда появился этот термин?

  2. Кто считается основателем формальной логики?

  3. Какой вклад внёс Лейбниц в логику?

  4. Кто является создателем логики высказываний? Как её ещё называют?

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

  6. Что такое понятие?

  7. Что такое суждение (высказывание)?

  8. Что такое высказывательная форма?

  9. Какие суждения являются простыми, а какие составными?

  10. Каковы формы простых суждений?

  11. Что такое умозаключение?

  12. Что такое алгебра?

  13. Как в алгебре логики обозначают суждения? Каковы их значения?

  14. Что такое тавтология? Противоречие?

  15. Что такое дизъюнкция? Какова её таблица истинности?

  16. Что такое конъюнкция? Какова её таблица истинности?

  17. Что такое инверсия? Какова её таблица истинности?

  18. Каков приоритет основных логических операций?

  19. Определите, суждения или не суждения. Истинные или ложные.

    1. Зимой идет дождь.

    2. 2+1=4

    3. X-3>7

    4. Кто к нам пришел?

    5. Конфеты вкусные.

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

  20. Для какого символьного выражения верно высказывание: «НЕ (Первая буква согласная) И НЕ (Вторая буква гласная)»?

abcde aecad babas cabab

  1. Составьте таблицу истинности для следующей логической функции:

F = X &¬Y v ¬X & Y.

  1. Какие вы знаете законы логики (свойства логических операций)?

  2. Продолжите запись

    1. A & Ā =

    2. A V A =

    3. A &1 =

    4. A&(BVC)=

  1. Вычислите: ((1 & 0) v 1) & (1 v A).

Моделирование

  1. Что такое модель?

  2. Что такое моделирование?

  3. Выберите верные утверждения:

а) Один объект может иметь только одну модель

б) Разные объекты могут описываться одной моделью

в) Электрическая схема — это модель электрической цепи

г) Модель полностью повторяет изучаемый объект


  1. ^

1) материальной моделью

2) вербальной моделью

3) образной моделью

4) знаковой моделью


1) иерархической модели

2) вербальной модели

3) материальной модели

4) табличной модели


  1. ^

1) все свойства данного объекта

2) существенные свойства данного объекта

3) несущественные свойства данного объекта


  1. ^

    1) уменьшенные копии зданий, кораблей, самолетов

    __ модели объектов

    2) экономические и исторические модели

    __ модели процессов

    3) землетрясение, солнечное затмение, цунами

    __ модели явлений

  2. ^

а) рисунок

б) схема

в) таблица

г) формула


  1. Выберите образную модель:

а) рисунок

б) схема

в) таблица

г) формула


  1. Выберите смешанную модель:

а) фотография

б) схема

в) текст

г) формула


а) словесные модели

б) логические модели

в) геометрические модели

г) алгебраические модели


  1. ^

а) человек — анатомический скелет — манекен

б) человек — медицинская карта — фотография

в) автомобиль — рекламный буклет с техническими характеристиками автомобиля — атлас автомобильных дорог

г) автомобиль — игрушечный автомобиль — техническое описание автомобиля

Графы


  1. ^

__ Цикл — цепь, в которой начальная и конечная вершины совпадают. А, В, С, D соединены дорогами. Время про­езда на автомобиле из города в город по соответствующим доро­гам указано в таблице:

А

В

С

D

А

X

2

4

4

В

2

X

5

3

С

4

5

X

1

D

4

3

1

X

^

а) ABCD

б) ACBD

в) ADCB

г) ABDC


  1. Таблица стоимости перевозок устроена следующим образом: числа, стоящие на пересечениях строк и столбцов таблиц, означают стоимость проезда между соответствующими соседними станциями. Если пересечение строки и столбца пусто, то станции не являются соседними. Укажите таблицу, для которой выполняется условие: «Минимальная стоимость проезда из А в B не больше 6». Стоимость проезда по маршруту складывается из стоимостей проезда между соответствующими соседними станциями.


  1. Сколько трёхзначных чисел можно составить из цифр 4,5,6,7, если цифры в числе не повторяются?

  2. Сколько четырёхзначных чисел можно составить из цифр 4,5,6,7, если цифры в числе могут повторяться?

Тесты Представление чисел в компьютере 8 класс с ответами

Информация о материале
Просмотров: 198

Тесты по информатике 8 класс. Тема: «Представление чисел в компьютере»

Правильный вариант ответа отмечен знаком +

1. К целым числам относятся:

а) √7

б) 1,94

в) 8/29

+ г) -9

2. Из чего состоит память компьютера?

а) разрядов

+ б) ячеек

в) битов

г) 0 и 1

3. Рассмотрите картинку. Что должно быть на месте вопроса?

а) 1

б) n

+ в) 0

г) n + 1

4. Представьте число 4910 в беззнаковом 8-ми разрядном формате.

+ а) 00110001

б) 11000100

в) 10001100

г) 00100011

тест 5. Как будет представлено число 1001011 в восьмиразрядном виде?

а) 10010110

б) 10010112

в) 1001011

+ г) 01001011

6. Число 11100010 представлено в восьмиразрядном виде. Какое оно?

+ а) отрицательное

б) положительное

в) дробное

г) нет правильного ответа

7. Дано число 829000000. Его можно представить в виде:

+ а) 82,9 * 107

б) 82,9 * 106

в) 829 * 107

г) 8,29 * 106

8. Имеется беззнаковое целое число 00110010. Какое это компьютерное представление числа?

а) шестнадцатиразрядное

+ б) восьмиразрядное

в) пятнадцатиразрядное

г) двухразрядное

9. Дано число 00111111. Определите, к какому десятизначному числу оно соответствует?

+ а) 63

б) 62

в) -63

г) -61

10. Дано число 2150000 = 0,215 *107. Определите мантиссу числа.

а) 7

+ б) 0,215

в) 107

г) 215

Калькулятор дополнения до двух

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

Как работать с отрицательными числами в двоичном формате? — представление в виде дополнения до 2

В двоичной системе все числа представляют собой комбинацию двух цифр: 0 или 1 . Каждая цифра соответствует степени 2, начиная справа.

Например, 12 в двоичном формате — это 1100 , так как 12 = 8 + 4 = 1 * 2³ + 1 * 2² + 0 * 2¹ + 0 * 2⁰ (в экспоненциальном представлении). Расширенная версия двоичной системы — это шестнадцатеричная система (в которой используется основание 16 вместо основания 2).Последний часто используется во многих компьютерных программах и системах.

Изучение двоичной системы приводит к возникновению многих естественных вопросов — а как насчет отрицательных чисел в двоичной системе? Или как вычесть двоичные числа? Поскольку мы можем использовать только 1 , чтобы показать, что присутствует что-то , или 0 , чтобы обозначить отсутствие , что вещь , есть два основных подхода:

  1. Представление с дополнением до двух , или, другими словами, знаковая запись — первый бит говорит о знаке.Принято считать, что число с ведущим 1 отрицательное , а ведущее 0 обозначает положительное значение . В 8-битном представлении мы можем записать любое число от -128 до 127. Название происходит от того факта, что отрицательное число является дополнением до двух положительного.

  2. Беззнаковая запись — представление, поддерживающее только положительные значения. Его преимущество перед знаковым состоит в том, что в рамках той же 8-битной системы мы можем получить любое число от 0 до 255.

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

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

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

  1. Выберите количество бит в вашей записи.Чем выше значение, тем шире диапазон чисел, которые вы можете ввести.

  2. Записать любое целое десятичное число в диапазоне, указанном в разделе Decimal to binary section.

  3. … и все — калькулятор дополнения до 2 сделает остальную работу! Он показывает эквивалентное двоичное число, а также его дополнение до двух.

Хотите вручную оценить результат? Вот как это делает калькулятор дополнения до двух:

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

  2. Запишите свое число, скажем 16. 16 в двоичном формате — это 1 0000 .

  3. Добавьте несколько первых 0 , чтобы число состояло из восьми цифр, 0001 0000 .

  4. Переключите все цифры на противоположные ( 0 → 1 и 1 → 0 ). В нашем случае 0001 0000 → 1110 1111 .

  5. Добавьте 1 к этому значению, 1101 1111 + 1 = 1111 0000 .

  6. 1110 0000 в представлении с дополнением до двух — это -16 в десятичной системе счисления и является дополнением до двух 0010 0000 .

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

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

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

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

    десятичный = 1 * 2⁰ + 1 * 2¹ + 0 * 2² + 1 * 2³ + 1 * 2⁴ + 1 * 2⁵ + 0 * 2⁶ - 1 * 2⁷

    в десятичной системе = 1 + 2 + 8 + 16 + 32 - 128 = -69

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

    1. Цифры обратные, 1011 1011 → 0100 0100 .
    2. Добавьте единицу, 0100 0100 + 1 = 0100 0101 .
    3. Преобразование в десятичное (начиная справа), десятичное = 1 * 2⁰ + 0 * 2¹ + 1 * 2² + 0 * 2³ + 0 * 2⁴ + 0 * 2⁵ + 1 * 2⁶ + 0 * 2⁷ .
    4. в десятичной системе = 1 + 4 + 64 = 69 .
    5. Поскольку 69 является абсолютным значением нашего начального (отрицательного) двоичного файла, добавьте перед ним знак минус.
    6. 1011 1011 — это -69 в двоичной системе с дополнением до двух.

Преобразование двоичного кода со знаком в десятичную таблицу

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

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

десятичное двоичный десятичное двоичный
0 0000 0000
1 0000 0001 -1 1111 1111
2 0000 0010 -2 1111 1110
3 0000 0011 -3 1111 1101
4 0000 0100 -4 1111 1100
5 0000 0101-5 1111 1011
6 0000 0110 -6 1111 1010
7 0000 0111 -7 1111 1001
8 0000 1000 -8 1111 1000
9 0000 1001 -9 1111 0111
10 0000 1010 -10 1111 0110
11 0000 1011 -11 1111 0101
12 0000 1100 -12 1111 0100
13 0000 1101 -13 1111 0011
14 0000 1110 -14 1111 0010
15 0000 1111-15 1111 0001
16 0001 0000 -16 1111 0000
17 0001 0001 -17 1110 1111
18 0001 0010 -18 1110 1110
19 0001 0011 -19 1110 1101
20 0001 0100-20 1110 1100
21 0001 0101 -21 1110 1011
22 0001 0110 -22 1110 1010
23 0001 0111 -23 1110 1001
24 0001 1000 -24 1110 1000
25 0001 1001 -25 1110 0111
26 0001 1010 -26 1110 0110
27 0001 1011 -27 1110 0101
28 0001 1100 -28 1110 0100
29 0001 1101 -29 1110 0011
30 0001 1110 -30 1110 0010
31 0001 1111 -31 1110 0001
32 0010 0000-32 1110 0000
33 0010 0001-33 1101 1111
34 0010 0010-34 1101 1110
35 0010 0011-35 1101 1101
36 0010 0100 -36 1101 1100
37 0010 0101 -37 1101 1011
38 0010 0110 -38 1101 1010
39 0010 0111 -39 1101 1001
40 0010 1000-40 1101 1000
41 0010 1001 -41 1101 0111
42 0010 1010-42 1101 0110
43 0010 1011-43 1101 0101
44 0010 1100-44 1101 0100
45 0010 1101-45 1101 0011
46 0010 1110 -46 1101 0010
47 0010 1111 -47 1101 0001
48 0011 0000-48 1101 0000
49 0011 0001-49 1100 1111
50 0011 0010-50 1100 1110
51 0011 0011 -51 1100 1101
52 0011 0100 -52 1100 1100
53 0011 0101 -53 1100 1011
54 0011 0110 -54 1100 1010
55 0011 0111-55 1100 1001
56 0011 1000-56 1100 1000
57 0011 1001 -57 1100 0111
58 0011 1010 -58 1100 0110
59 0011 1011 -59 1100 0101
60 0011 1100 -60 1100 0100
61 0011 1101-61 1100 0011
62 0011 1110-62 1100 0010
63 0011 1111-63 1100 0001
64 0100 0000-64 1100 0000
65 0100 0001-65 1011 1111
66 0100 0010-66 1011 1110
67 0100 0011-67 1011 1101
68 0100 0100-68 1011 1100
69 0100 0101-69 1011 1011
70 0100 0110-70 1011 1010
71 0100 0111-71 1011 1001
72 0100 1000-72 1011 1000
73 0100 1001-73 1011 0111
74 0100 1010-74 1011 0110
75 0100 1011 -75 1011 0101
76 0100 1100-76 1011 0100
77 0100 1101-77 1011 0011
78 0100 1110 -78 1011 0010
79 0100 1111 -79 1011 0001
80 0101 0000 -80 1011 0000
81 0101 0001-81 1010 1111
82 0101 0010-82 1010 1110
83 0101 0011-83 1010 1101
84 0101 0100-84 1010 1100
85 0101 0101-85 1010 1011
86 0101 0110-86 1010 1010
87 0101 0111-87 1010 1001
88 0101 1000 -88 1010 1000
89 0101 1001-89 1010 0111
90 0101 1010-90 1010 0110
91 0101 1011-91 1010 0101
92 0101 1100-92 1010 0100
93 0101 1101-93 1010 0011
94 0101 1110-94 1010 0010
95 0101 1111-95 1010 0001
96 0110 0000 -96 1010 0000
97 0110 0001-97 1001 1111
98 0110 0010-98 1001 1110
99 0110 0011-99 1001 1101
100 0110 0100 -100 1001 1100
101 0110 0101 -101 1001 1011
102 0110 0110 -102 1001 1010
103 0110 0111 -103 1001 1001
104 0110 1000 -104 1001 1000
105 0110 1001 -105 1001 0111
106 0110 1010 -106 1001 0110
107 0110 1011 -107 1001 0101
108 0110 1100 -108 1001 0100
109 0110 1101 -109 1001 0011
110 0110 1110 -110 1001 0010
111 0110 1111 -111 1001 0001
112 0111 0000 -112 1001 0000
113 0111 0001 -113 1000 1111
114 0111 0010 -114 1000 1110
115 0111 0011 -115 1000 1101
116 0111 0100 -116 1000 1100
117 0111 0101 -117 1000 1011
118 0111 0110 -118 1000 1010
119 0111 0111 -119 1000 1001
120 0111 1000 -120 1000 1000
121 0111 1001 -121 1000 0111
122 0111 1010 -122 1000 0110
123 0111 1011 -123 1000 0101
124 0111 1100 -124 1000 0100
125 0111 1101 -125 1000 0011
126 0111 1110 -126 1000 0010
127 0111 1111 -127 1000 0001
-128 1000 0000

Как преобразовать десятичное число в 8-битное двоичное число со знаком?

8-битовое целое число со знаком резервирует для знака бит самого высокого порядка. 5 или 32 .0 или 1 , который переходит в 1 один раз.

  1111 1101
  

Таким образом, наше 8-битное представление числа -125 со знаком — 11111101 .

Tech Stuff — шестнадцатеричный, десятичный и двоичный

Основной единицей, используемой в компьютерном мире, является байт (он же октет), байт (или октет) состоит из 8 бит (он же двоичные цифры). Большинство современных систем используют число, кратное байту, таким образом, 16-разрядная система состоит из 2 байтов (2 x 8 = 16), 32-разрядная система имеет 4 байта (4 x 8 = 32), а 64-разрядная система имеет 8 байтов (8 x 8 = 64).Термин слово , как и в описании 32-битного слова, в значительной степени исчез из технической лексики.

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

Система нумерации База Диапазон Банкноты
Десятичное число база 10 0 — 1,2,3… Самая распространенная система нумерации — доллары, метрика и т. Д. Байт (8 бит) имеет 256 возможных значений в диапазоне 0 — 255
двоичный база 2 0–1 Базовый уровень, на котором работает электронная схема в компьютере — один бит.
Шестнадцатеричное база 16 0-9, A-F Каждый шестнадцатеричный символ представляет 4 бита (0-15 десятичных), что называется полубайтом (маленький байт — честно!).Байт (или октет) составляет 8 бит, поэтому всегда представлен двумя шестнадцатеричными символами в диапазоне от 00 до FF.

Историческая справка: Когда-то давно, когда мир и даже автор этой страницы были молоды, компьютеры были построены с использованием 12-битных, 24-битных и даже 36-битных слов (это имело определенный смысл тогда как раз сегодня выглядит странно). Каждый из этих размеров слова делится на 3 и использует восьмеричную систему нумерации (основание 8). Каждый 3-битный элемент содержал 8 значений в диапазоне от 0 до 7. Таким образом, ячейка памяти с 12-битным двоичным значением 000.001.100.111 будет записано в восьмеричной системе счисления 0147.

Битовая нумерация

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

Содержимое памяти 0 0 0 0 0 0 0 0
Условные обозначения нумерации бит
Основание слева направо 0 (IETF) 0 1 2 3 4 5 6 7
Основание слева направо 1 1 2 3 4 5 6 7 8
Справа налево основание 1 (ITU) 8 7 6 5 4 3 2 1
Мощность 2 7 6 5 4 3 2 1 0

Всегда проверяйте, какое соглашение используется в любой спецификации.Мы смирились с неизбежным и используем стандарт Left to right base 0 (IETF) , поскольку благодаря Интернету он широко используется и, надеюсь, столь же широко понимается. Обоснование этого стандарта IETF состоит в том, что он также недвусмысленно представляет то, что называется сетевым порядком , то есть бит 0 сначала идет в сеть, бит 1 — секунду и так далее. Биты также имеют тенденцию выходить из сети в том же порядке, в котором они поступали. Использование сетевого порядка необходимо, поскольку внутреннее (машинное) представление данных может сильно различаться (вся эта чушь с прямым порядком байтов и прямым порядком байтов), но когда данные загружаются в сеть, они должны быть в согласованном порядке, который может использоваться любая система, независимо от ее внутреннего представления, которая хочет использовать данные.

Наконец, при работе с двоичным кодом вы часто будете сталкиваться с терминами наиболее значимый бит (s) (MSB) и наименее значимый бит (s) (LSB). MSB всегда находится слева, а LSB — справа. Таким образом, при использовании нумерации битов IETF MSB — это бит 0, а LSB — бит 7, тогда как при использовании битовой нумерации ITU MSB — это бит 8, а LSB — бит 1. Совершенно ясно, не так ли?

8-битный байт (октет) Таблица преобразования:

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

Десятичное число Шестнадцатеричный двоичный Десятичное число Шестнадцатеричный двоичный
0 00 0000 0000 128 80 1000 0000
1 01 0000 0001 129 81 1000 0001
2 02 0000 0010 130 82 1000 0010
3 03 0000 0011 131 83 1000 0011
4 04 0000 0100 132 84 1000 0100
5 05 0000 0101 133 85 1000 0101
6 06 0000 0110 134 86 1000 0110
7 07 0000 0111 135 87 1000 0111
8 08 0000 1000 136 88 1000 1000
9 09 0000 1001 137 89 1000 1001
10 0A 0000 1010 138 8A 1000 1010
11 0000 1011 139 1000 1011
12 0C 0000 1100 140 8C 1000 1100
13 0D 0000 1101 141 8D 1000 1101
14 0E 0000 1110 142 8E 1000 1110
15 0F 0000 1111 143 8F 1000 1111
16 10 0001 0000 144 90 1001 0000
17 11 0001 0001 145 91 1001 0001
18 12 0001 0010 146 92 1001 0010
19 13 0001 0011 147 93 1001 0011
20 14 0001 0100 148 94 1001 0100
21 15 0001 0101 149 95 1001 0101
22 16 0001 0110 150 96 1001 0110
23 17 0001 0111 151 97 1001 0111
24 18 0001 1000 152 98 1001 1000
25 19 0001 1001 153 99 1001 1001
26 0001 1010 154 9A 1001 1010
27 0001 1011 155 1001 1011
28 0001 1100 156 9C 1001 1100
29 1D 0001 1101 157 9D 1001 1101
30 1E 0001 1110 158 9E 1001 1110
31 1 этаж 0001 1111 159 9F 1001 1111
32 20 0010 0000 160 A0 1010 0000
33 21 0010 0001 161 A1 1010 0001
34 22 0010 0010 162 A2 1010 0010
35 23 0010 0011 163 A3 1010 0011
36 24 0010 0100 164 A4 1010 0100
37 25 0010 0101 165 A5 1010 0101
38 26 0010 0110 166 A6 1010 0110
39 27 0010 0111 167 A7 1010 0111
40 28 0010 1000 168 A8 1010 1000
41 29 0010 1001 169 A9 1010 1001
42 0010 1010 170 AA 1010 1010
43 0010 1011 171 AB 1010 1011
44 2C 0010 1100 172 AC 1010 1100
45 2D 0010 1101 173 нашей эры 1010 1101
46 2E 0010 1110 174 AE 1010 1110
47 2F 0010 1111 175 AF 1010 1111
48 30 0011 0000 176 B0 1011 0000
49 31 0011 0001 177 B1 1011 0001
50 32 0011 0010 178 B2 1011 0010
51 33 0011 0011 179 B3 1011 0011
52 34 0011 0100 180 B4 1011 0100
53 35 0011 0101 181 B5 1011 0101
54 36 0011 0110 182 B6 1011 0110
55 37 0011 0111 183 B7 1011 0111
56 38 0011 1000 184 B8 1011 1000
57 39 0011 1001 185 B9 1011 1001
58 3A 0011 1010 186 BA 1011 1010
59 0011 1011 187 BB 1011 1011
60 3C 0011 1100 188 до н.э. 1011 1100
61 3D 0011 1101 189 BD 1011 1101
62 3E 0011 1110 190 BE 1011 1110
63 3F 0011 1111 191 BF 1011 1111
64 40 0100 0000 192 C0 1100 0000
65 41 0100 0001 193 C1 1100 0001
66 42 0100 0010 194 C2 1100 0010
67 43 0100 0011 195 C3 1100 0011
68 44 0100 0100 196 C4 1100 0100
69 45 0100 0101 197 C5 1100 0101
70 46 0100 0110 198 C6 1100 0110
71 47 1100 0111 199 C7 1100 0111
72 48 0100 1000 200 C8 1100 1000
73 49 0100 1001 201 C9 1100 1001
74 4A 0100 1010 202 CA 1100 1010
75 0100 1011 203 CB 1100 1011
76 4C 0100 1100 204 CC 1100 1100
77 4D 0100 1101 205 CD 1100 1101
78 4E 0100 1110 206 CE 1100 1110
79 4F 1100 1111 207 CF 1100 1111
80 50 0101 0000 208 D0 1101 0000
81 51 0101 0001 209 D1 1101 0001
82 52 0101 0010 210 D2 1101 0010
83 53 0101 0011 211 D3 1101 0011
84 54 0101 0100 212 D4 1101 0100
85 55 0101 0101 213 D5 1101 0101
86 56 0101 0110 214 D6 1101 0110
87 57 1101 0111 215 D7 1101 0111
88 58 0101 1000 216 D8 1101 1000
89 59 0101 1001 217 D9 1101 1001
90 0101 1010 218 DA 1101 1010
91 0100 1011 219 DB 1101 1011
92 5C 0101 1100 220 DC 1101 1100
93 5D 0101 1101 221 DD 1101 1101
94 5E 0101 1110 222 DE 1101 1110
95 5F 1101 1111 223 DF 1101 1111
96 60 0110 0000 224 E0 1110 0000
97 61 0110 0001 225 E1 1110 0001
98 62 0110 0010 226 E2 1110 0010
99 63 0110 0011 227 E3 1110 0011
100 64 0110 0100 228 E4 1110 0100
101 65 0110 0101 229 E5 1110 0101
102 66 0110 0110 230 E6 1110 0110
103 67 1110 0111 231 E7 1110 0111
104 68 0110 1000 232 E8 1110 1000
105 69 0110 1001 233 E9 1110 1001
106 0110 1010 234 EA 1110 1010
107 0110 1011 235 EB 1110 1011
108 6C 0110 1100 236 EC 1110 1100
109 6D 0110 1101 237 ED 1110 1101
110 6E 0110 1110 238 EE 1110 1110
111 6F 1110 1111 239 EF 1110 1111
112 70 0111 0000 240 F0 1111 0000
113 71 0111 0001 241 F1 1111 0001
114 72 0111 0010 242 F2 1111 0010
115 73 0111 0011 243 F3 1111 0011
116 74 0111 0100 244 F4 1111 0100
117 75 0111 0101 245 F5 1111 0101
118 76 0111 0110 246 F6 1111 0110
119 77 1111 0111 247 F7 1111 0111
120 78 0111 1000 248 F8 1111 1000
121 79 0111 1001 249 F9 1111 1001
122 7A 0111 1010 250 FA 1111 1010
123 0111 1011 251 FB 1111 1011
124 7C 0111 1100 252 FC 1111 1100
125 7D 0111 1101 253 FD 1111 1101
126 7E 0111 1110 254 FE 1111 1110
127 7F 0111 1111 255 FF 1111 1111

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

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

IP-адрес в десятичном формате с точками = 192.168.0.5
Десятичное 192 = Шестнадцатеричное = C0
Десятичный 168 = Шестнадцатеричный = A8
Десятичный 0 = Шестнадцатеричный = 00
Десятичный 5 = Шестнадцатеричный = 05
IP-адрес в шестнадцатеричном формате с точками = C0.A8.00.05
 


Проблемы, комментарии, предложения, исправления (включая битые ссылки) или что-то добавить? Выделите время из напряженной жизни, чтобы «написать нам» (вверху экрана), веб-мастеру (внизу) или получить информационную поддержку на zytrax. У вас будет теплое внутреннее сияние до конца дня.

арифметических операций над двоичными числами

арифметических операций над двоичными числами

Арифметические операции над двоичными числами

Из-за его широкого использования мы сосредоточимся на сложении и вычитании для представления Two Complement.

Приятная особенность Two’s Complement заключается в том, что сложение и вычитание двух дополнительных чисел работает без необходимости разделять знаковые биты (знак операндов и результатов эффективно встроен в вычисление сложения / вычитания).

Помните: −2 n − 1 ≤ Два дополнения ≤ 2 n − 1 -1

−8 ≤ х [4] ≤ +7

−128 ≤ x [8] ≤ +127

−32768 ≤ x [16] ≤ +32767

−2147483648 ≤ x [32] ≤ +2147483647

Что, если результат выходит за рамки представления?

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


Дополнение до двух

Сложите значения и сбросьте бит переноса.

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

  1. Добавить от −8 до +3
     (+3) 0000 0011
    + (- 8) 1111 1000
    -----------------
     (−5) 1111 1011
     
  2. Добавить −5 к −2
     (−2) 1111 1110
    + (- 5) 1111 1011
    -----------------
     (−7) 1 1111 1001: отбросить вынос
     

Правило переполнения для добавления

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

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

Переполнение происходит, если

  • (+ А) + (+ В) = -С
  • (-A) + (-B) = + C

Пример: использование 4-битных чисел с дополнением до двух (−8 ≤ x ≤ +7)

 (−7) 1001
+ (- 6) 1010
------------
(−13) 1 0011 = 3: переполнение (наибольшее число −ve равно −8)
 

Пара определений:

Вычитаемое: что вычитается
Минухенд: из чего вычитается

Пример: 612 — 485 = 127

485 — вычитаемое, 612 — минухенд, 127 — это результат


Вычитание с дополнением до двух

Обычно выполняется путем отрицания вычитаемого и добавления его к минухенду.Любой вынос отбрасывается.

Пример: использование 8-битных чисел с дополнением до двух (-128 ≤ х ≤ +127)

 (+8) 0000 1000 0000 1000
- (+ 5) 0000 0101 -> Отказ -> +1111 1011
----- -----------
 (+3) 1 0000 0011: сбросить вынос
 

Правило переполнения для вычитания

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

Переполнение происходит, если

  • (+ А) — (-В) = -С
  • (-А) — (+ В) = + С

Пример: использование 4-битных чисел с дополнением до двух (−8 ≤ x ≤ +7)

Вычтем −6 из +7

     (+7) 0111 0111
    - (- 6) 1010 -> Отказ -> +0110
    ---------- -----
      13 1101 = −8 + 5 = −3: переполнение
 

Числовой круг для 4-битных чисел с дополнением до двух

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

  • По часовой стрелке для сложения
  • Против часовой стрелки для вычитания (добавления отрицательного числа)

Переполнение происходит при переходе

  • от +2 n − 1 −1 до −2 n − 1 при добавлении
  • от −2 n − 1 до +2 n − 1 −1 при вычитании

Сводка дополнения до двух

Дополнение

  • Сложить значения, отбросив бит переноса

Вычитание

  • Отменить вычитаемое и сложить, отбрасывая любой переносимый бит

Перелив


Умножение и деление

Нет проблем с беззнаковыми (всегда положительными) числами, просто используйте те же стандартные приемы, что и в базе 10. (помня, что x [n] & times y [n] = z [2n])

  • Пример умножения 1100101 2 × 111101 2 (101 10 × 61 10 )
          1100101 101  10 
         × 111101 × 61  10 
          -------
          1100101
       +1100101
      +1100101
     +1100101
    +1100101
    -------------
    ?????????????
    -------------
     

    Проще использовать промежуточные результаты:

          1100101 101  10 
         × 111101 × 61  10 
          -------
          1100101
       +1100101
       ----------
        111111001
      +1100101
     ------------
      10100100001
     +1100101
    -------------
     101101110001
    +1100101
    -------------
    1100000010001 = 4096  10  + 2048  10  + 16  10  + 1 = 6161  10 
    ------------- 
  • Пример деления: 100101 2 ÷ 101 2 (37 10 ÷ 5 10 )
           111 результат = 7  10 
       -------
    101) 100101
        −101
         ---
         1000
         −101
          ---
           111
          −101
           ---
            Остаток 10 = 2  10 
           ---
     

Умножение с дополнением до двух не может быть выполнено с помощью стандартной техники, поскольку, что касается самой машины, для Y [n]:

−Y º 0 — Y º 2 n — Y

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

Пример:

−19 10 в 8-битном формате = (2 8 -19) 10
= 256 10 -19 10
= 237 10
= 11101101 2 без знака
= −2 7 + 2 6 + 2 5 + 2 3 + 2 2 + 2 0
= −128 + 64 + 32 + 8 + 4 + 1
= −128 + 109
= −19 10 с дополнением до двух

Рассмотрим X × (−Y)

Внутренняя манипуляция −Y — это как 2 n — Y

Следовательно, X × (−Y) знак равно X × (2 n — Y) знак равно 2 n × X — X × Y

Однако ожидаемый результат должен быть 2 2n — (X × Y)

поскольку x [n] × y [n] = z [2n]

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

Аналогично делению Two Complement. Может преобразовывать операнды в их абсолютные значения, выполнять деление, а затем отрицать результат, если знаки операндов разные.

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

За рамками этого курса!


[ Индекс ]

последнее обновление: 21-окт-02 Ян Харрис

GitHub — jrudolph / scodec-cheatsheet: неофициальный scodec cheatsheet

.
hlist Преобразовать кодек в HList uint8.hlist Инт :: HNil 8 8 42 :: HNil 2a₁₆ (1 байт)
в паре с Объединить два кодека в кортеж из 2 частей uint8 в паре с uint16 (Инт, Инт) 24 24 (0x12, 0x3456) 12 34 56₁₆ (3 байта)
в паре с Объединить два кодека в кортеж из 2 частей uint8 в паре с uint16 в паре с cstring ((Инт, Инт), Строка) 24 ((0x12, 0x3456), «abc») 12 34 56 61 62 63 00₁₆ (7 байтов)
~ Объединить два кодека в кортеж из 2 частей uint8 ~ uint16 (Инт, Инт) 24 24 (0x12, 0x3456) 12 34 56₁₆ (3 байта)
~ Объединить два кодека в кортеж из 2 частей uint8 ~ uint16 ~ cstring ((Инт, Инт), Строка) 24 ((0x12, 0x3456), «abc») 12 34 56 61 62 63 00₁₆ (7 байтов)
плоский левый пар Удаляет левое вложение кортежей и преобразует их в HList uint8 ~ uint16 ~ cstring flattenLeftPairs Int :: Int :: String :: HNil 24 0x12 :: 0x3456 :: "abc" :: HNil 12 34 56 61 62 63 00₁₆ (7 байт)
падение влево Объединить два кодека, отбросив значение единицы левого константа (0x12) dropLeft uint8 Внутр. 16 16 0x68 12 68₁₆ (2 байта)
~> Объединить два кодека, отбросив значение единицы левого константа (0x12) ~> uint8 Внутр. 16 16 0x68 12 68₁₆ (2 байта)
капля справа Объединить два кодека, отбросив значение единицы правого uint8 Константа dropRight (0x12) Внутр. 16 16 0x68 68 12₁₆ (2 байта)
<~ Объединить два кодека, отбросив значение единицы правого uint8 <~ константа (0x12) Внутр. 16 16 0x68 68 12₁₆ (2 байта)
плоская застежка-молния Объедините два кодека в кортеж из 2, где второй кодек выбирается в зависимости от результата первого. uint8 flatZip {case i, если i <100 ⇒ uint8; case _ ⇒ uint16} (Инт, Инт) 8 (23, 42) 17 2a₁₆ (2 байта)
(112, 0x1234) 70 12 34 (3 байта)
>> ~ Объедините два кодека в кортеж из 2, где второй кодек выбирается в зависимости от результата первого. uint8 >> ~ {case i, если i <100 ⇒ uint8; case _ ⇒ uint16} (Инт, Инт) 8 (23, 42) 17 2a₁₆ (2 байта)
(112, 0x1234) 70 12 34 (3 байта)
потребляют Декодирует левый кодек, а затем правый кодек в зависимости от левого результата, затем отбрасывает левое значение и возвращает только правое byteAligned (bool).потребляют [Int] (isLarge ⇒ if (isLarge) uint16 else uint8) (_> 0xff) Внутр. 8 255 00 ff₁₆ (2 байта)
256 80 01 00₁₆ (3 байта)
0x1234 80 12 34₁₆ (3 байта)
:: Объединить два кодека в HList uint8 :: cstring Инт :: Строка :: HNil 8 0x42 :: "zweiundvierzig" :: HNil 42 7a 77 65 69 75 6e 64 76 69 65 72 7a 69 67 00₁₆ (16 байт)
капель Удалить элементы Unit из кодека HList константа (шестнадцатеричный "ca fe") :: cstring).dropUnits Строка :: HNil 16 "dreiundzwanzig" :: HNil ca fe 64 72 65 69 75 6e 64 7a 77 61 6e 7a 69 67 00₁₆ (17 байт)
: ~>: Объединить два кодека, отбросив значение единицы левого константа (шестнадцатеричное "ab cd ef"): ~>: uint16 :: uint8 Int :: Int :: HNil 48 48 0x1234 :: 0x23 :: HNil ab cd ef 12 34 23₁₆ (6 байт)
: + Добавить в левый кодек HList правый кодек. uint8.hlist: + uint16 Int :: Int :: HNil 24 24 0x42 :: 0xcdef :: HNil 42 cd ef₁₆ (3 байта)
::: Concat два кодека HList (uint8 :: cstring) ::: (константа (0x23) :: uint16) Int :: String :: Unit :: Int :: HNil 32 0x42 :: "zweiundvierzig" :: () :: 0xabcd :: HNil 42 7a 77 65 69 75 6e 64 76 69 65 72 7a 69 67 00 23 ab cd₁₆ (19 байт)
плоский ZipHList Concat to HList результат первого кодека с результатом определения кодека после на основе значения первой части uint8 flatZipHList {case strSize ⇒ limitedSizeBytes (strSize, utf8)} Инт :: Строка :: HNil 8 8 :: "сосиски" :: HNil 08 73 61 75 73 61 67 65 73₁₆ (9 байт)
плоский Concat to HList результат первого кодека с результатом HList Codec, определенным после на основе значения первой части uint8 flatPrepend {case strSize ⇒ limitedSizeBytes (strSize, utf8) :: uint16} Int :: String :: Int :: HNil 8 8 :: "сосиски" :: 0x1234 :: HNil 08 73 61 75 73 61 67 65 73 12 34₁₆ (11 байт)
>>: ~ Concat to HList результат первого кодека с результатом HList Codec, определенным после на основе значения первой части uint8 >>: ~ {case strSize ⇒ limitedSizeBytes (strSize, utf8) :: uint16} Int :: String :: Int :: HNil 8 8 :: "сосиски" :: 0x1234 :: HNil 08 73 61 75 73 61 67 65 73 12 34₁₆ (11 байт)
плоский Приложение Concat результат первого кодека HList с результатом кодека, определенным после на основе значения первой части uint8 :: uint16 flatAppend {case strSize :: _ :: HNil ⇒ limitedSizeBytes (strSize, utf8)} Int :: Int :: String :: HNil 24 8 :: 0xabcd :: "сосиски" :: HNil 08 ab cd 73 61 75 73 61 67 65 73₁₆ (11 байт)
плоский Concat Concat результат первого кодека HList с результатом кодека HList, определенным после на основе значения первой части uint8 :: uint16 flatConcat {case strSize :: _ :: HNil ⇒ limitedSizeBytes (strSize, utf8) :: uint16} Int :: Int :: String :: Int :: HNil 24 8 :: 0xabcd :: "сосиски" :: 0x1234 :: HNil 08 ab cd 73 61 75 73 61 67 65 73 12 34₁₆ (13 байт)

Временной ряд с битовыми полями | Redis Labs

Временной ряд с битовыми полями

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

При этом мы можем структурировать наши данные следующим образом:

  • Минута 0 дня = байт 0
  • Температура записывается в виде 8-битного целого числа без знака (от 0 до 255).

Это даст данные за день примерно за 1.44 КБ

Мы можем записать температуру с помощью команды BITFIELD:

> BITFIELD bit-ts SET u8 # 0 22
1) (целое число) 0
 

В этом случае мы записали температуру в ключевых битах t в 8-битном формате без знака (u8) в полночь (# 0) и с температурой 22. Фактически, битовые поля не ограничены 8-битными значениями без знака. вы можете манипулировать одним битом до 63 бит без знака или 64 бит со знаком. Обратите внимание на хэш перед смещением (# 0), это означает, что вы хотите выровнять его с указанным типом данных.Например, если вы укажете # 79, это будет означать 79 байтов, а отсутствие хеша будет означать 79-й бит .

Смещение может быть выровнено по типу сохраняемого числа, начиная с 0. Например, если мы хотим записать 1 AM с учетом отсчетов отсчета от нуля, мы должны использовать смещение # 59 или полдень для смещения # 719. .

> BITFIELD bit-ts SET u8 # 59 23 SET u8 # 719 25
1) (целое число) 0
2) (целое число) 0
 

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

Давайте добавим еще несколько значений к нашему временному ряду:

> BITFIELD bit-ts SET u8 # 60 21 SET u8 # 61 20
1) (целое число) 0
2) (целое число) 0 

Теперь позвольте получить эти значения:

> BITFIELD bit-ts GET u8 # 59 GET u8 # 60 GET u8 # 61
1) (целое число) 23
2) (целое число) 21
3) (целое число) 20 
Подкоманда GET

BITFIELD форматируется так же, как SET, за исключением того, что она не принимает значение в качестве третьего аргумента.

Это нормально, если мы знаем все индексы, которые нам нужно получить, но иногда нам нужен диапазон значений, и было бы слишком много указывать каждый байт по отдельности.Мы можем использовать команду GETRANGE. Обычно это используется для извлечения байтов из строки, но BITFIELD - это просто другой способ обращения к одним и тем же базовым данным.

> GETRANGE бит-ц 59 61
"x17x15x14" 

Это вернуло байты с 59 по 61 в шестнадцатеричной форме (23, 21 и 20 в десятичной). Языковые клиенты лучше справляются с обработкой двоичных данных, чем redis-cli, и обычно могут извлекать идиоматический массив байтов вашего языка.

В нашем примере мы манипулировали байтами 0, 59-61 и 719.Что произойдет, если мы запросим байт, который еще не установили? Посмотрим:

> BITFIELD бит-TS GET u8 # 40
1) (целое число) 0
> BITFIELD bit-ts GET u8 # 750
1) (целое число) 0
> GETRANGE бит-TS 30 50
«x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00»
 

Мы видим, что Redis обрабатывает неназначенные байты как шестнадцатеричные 00 / десятичные 0. Это может быть сложно при работе с данными временных рядов - логика вашего приложения должна делать некоторую разницу между значением 0 и неустановленным.Это может включать в себя своего рода искусственный пол и пропускать значения, установленные как 0, особенно при использовании целых чисел со знаком, поскольку это может быть допустимое значение в середине вашего диапазона.

Фактическая сохраненная длина временного ряда фактически зависит от последнего набора байтов. Итак, в нашем примере последним сохраненным байтом был байт №719 (отсчитываемый от нуля), поэтому длина данных составляет 720 байт. Мы можем подтвердить это с помощью STRLEN:

> СТРЛЕН бит-ц
(целое число) 720 

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

WaveFile Gem - формат волнового файла

Формат файла Wave

Формат файла Wave со временем изменился и определен в нескольких документах:

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

Начало работы

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

Файлы Wave для хранения аудиоданных

Файлы

Wave представляют собой контейнерный формат, который позволяет хранить многие типы аудиоданных. Самый распространенный формат - это целое число PCM . Это необработанные несжатые данные выборки, где каждая выборка является целым числом. ( PCM обозначает импульсную кодовую модуляцию ).Точно так же данные PCM могут быть определены с использованием значения с плавающей запятой для каждой выборки, хотя технически это считается другим форматом.

Есть много других официально определенных аудиоформатов. Однако большинство из них редки или устарели.

В настоящее время гем WaveFile поддерживает следующие форматы примеров:

  • Целочисленный PCM с 8, 16, 24 или 32 битами на выборку (код формата 1 )
  • PCM с плавающей запятой, 32 или 64 бита на выборку (код формата 3 )
  • Форматы, указанные выше, внутри контейнера WAVE_FORMAT_EXTENSIBLE (код формата 65534 )

Волновые файлы - это файлы RIFF

Еще в конце 80-х Electronic Arts разработала общий формат файла-контейнера, который можно было использовать для хранения различных типов данных - аудио, графики и т. Д.Он назывался IFF , от Interchange File Format . Затем Microsoft взяла этот формат, изменила порядок байтов с прямого порядка байтов на прямой порядок байтов, чтобы лучше соответствовать процессорам Intel, и назвала его RIFF (формат файла обмена ресурсами ). Затем формат RIFF был использован для формата файлов * .wav .

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

Файлы RIFF содержат «фрагменты»

Как и файл IFF, файл RIFF разбивается на «порции» данных. Каждый блок начинается с 8-байтового заголовка, содержащего 4-байтовый код идентификатора, и поля размером 4 байта. Далее следует тело чанка.

Идентификационный код, называемый FourCC, представляет собой последовательность из 4 байтов. Когда каждый байт интерпретируется как 8-битный символ ASCII, они обычно образуют удобочитаемую строку. Например, 0x52 0x49 0x46 0x46 (т.е.е. «RIFF» ) или 0x64 0x61 0x74 0x61 (т. Е. «данные» ). Поскольку это необработанная последовательность байтов, символы чувствительны к регистру.

Поле размера указывает размер тела блока в байтах как 32-битовое целое число без знака. Размер не должен включать 8-байтовый заголовок. То есть, если блок состоит из 8-байтового заголовка, за которым следуют 1000 байтов данных, в поле размера должно быть указано 1000 , а не 1008 .

Важно! Если тело фрагмента имеет нечетное количество байтов, за ним должен следовать байт заполнения со значением 0 . Другими словами, фрагмент всегда должен занимать четное количество байтов в файле. Байт заполнения должен быть равен , а не в поле размера заголовка блока. Например, если размер тела блока составляет 17 байтов, поле размера заголовка должно быть установлено на 17 , даже если тело блока занимает 18 байтов (17 байтов данных, за которыми следует байт заполнения).

Волновая файловая структура высокого уровня

На верхнем уровне волновой файл состоит из одного фрагмента RIFF ( "RIFF" ), который содержит все данные для волнового файла. Тело блока RIFF начинается с кода формата «WAVE» , который указывает, что файл является файлом Wave (поскольку файл RIFF также может содержать другие типы данных). За ним следуют дочерние блоки, вложенные в родительский блок RIFF.

Как минимум, дочерние блоки должны включать в себя блок формата ( "fmt" ) и блок данных ( "данные" ), а блок формата должен располагаться перед блоком данных.Если код формата в блоке формата не 1 (см. Ниже), то также должен быть блок фактов ( «факт» ). Также возможны другие необязательные типы чанков.

Типичный файл может выглядеть так:

Идентификатор блока RIFF ( "RIFF" ) Размер корпуса блока RIFF Код формата: "ВОЛНА" Форматировать идентификатор блока ( "fmt" ) Форматировать размер тела блока Чанк Тело Идентификатор блока данных ( «данные» ) Размер тела блока данных Чанк Тело

Важно! За исключением блока формата, идущего перед блоком данных, не требуется, чтобы дочерние блоки располагались в каком-либо определенном порядке.Не следует предполагать, что блок данных является последним блоком. (Хотя на практике часто бывает).

Фрагмент RIFF

Как и все блоки, блок RIFF начинается с идентификационного кода FourCC. В данном случае это «РИФФ» . Далее идет поле размера, которое представляет собой размер всего файла Wave, за исключением 8-байтового заголовка блока RIFF.

Первые 4 байта после заголовка определяют тип блока RIFF. В случае файла Wave это будет «WAVE» .Сразу после этого будут дочерние фрагменты.

Фрагмент формата

Блок формата описывает формат, в котором закодированы образцы в блоке данных. Точная структура блока формата зависит от значения поля кода формата. Если код формата - 1 (целочисленный PCM), то блок формата будет содержать только поля над пунктирной линией на диаграмме ниже. Если это не 1 , блок также будет содержать поля после пунктирной линии.

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

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

Код формата - указывает, как хранятся образцы данных для волнового файла. Самый распространенный формат - это целочисленный PCM, который имеет код 1 . Другие форматы включают PCM с плавающей запятой ( 3 ), ADPCM ( 2 ), A-law ( 6 ), μ-law ( 7 ) и WaveFormatExtensible ( 65534 ).

Количество каналов - Обычно файл имеет 1 канал (моно) или 2 канала (стерео).Файл объемного звука 5.1 будет иметь 6 каналов.

Частота дискретизации - Количество кадров выборки, которые появляются каждую секунду. Типичное значение будет 44 100, что соответствует аудио компакт-диску.

Байт в секунду (также известная как скорость байтов) - Спецификация называет эту скорость байта , что означает количество байтов, необходимое для одной секунды аудиоданных. Это равно количеству байтов на кадр выборки, умноженному на частоту дискретизации. Таким образом, при 4 байтах на кадр выборки и частоте дискретизации 44 100 это должно равняться 176 400.

Байт на кадр выборки (также известное как выравнивание блока) - Спецификация называет выравнивание блока , это количество байтов, необходимое для хранения одного кадра выборки, то есть одной выборки для каждого канала. (Иногда кадр выборки также называют блоком ). Каждая выборка и кадр выборки в целом должны состоять из целого числа байтов (т. Е. Быть кратным 8 битам). Например, размер кадра выборки в 16 бит допустим, а 12 бит - нет.

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

Это поле можно использовать для вычисления поля байтов в секунду. Другое возможное использование - поиск в файле. Например, если количество байтов на кадр выборки равно 4, то для перехода вперед на 10 кадров выборки необходимо выполнить поиск вперед на 40 байтов.

Бит на выборку - Для целочисленных данных PCM типичные значения будут 8 , 16 или 32 . Если для формата образца это поле не требуется, его следует установить на 0 .

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

Дополнительные поля - Зависит от кода формата! В следующих разделах описаны дополнительные поля для нескольких аудиоформатов.

Поля дополнительного формата для чисел с плавающей запятой

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

Поля дополнительного формата для расширяемого формата

Если код формата 65534 , то формат называется «WAVE_FORMAT_EXTENSIBLE». Это происходит от имени структуры данных, присвоенной этому формату в Windows API. Расширяемый формат - это формат контейнера (… в пределах * .wav, который сам по себе является форматом контейнера). Он существует для устранения некоторых двусмысленностей в исходном формате файла Wave без нарушения совместимости с уже существующими файлами.

Если используется формат WAVE_FORMAT_EXTENSIBLE, размер расширения в блоке формата должен быть 22 , и должны быть включены следующие три поля:

Допустимые биты на выборку - Исходная спецификация волнового файла не ясна относительно того, представляют ли биты на поле выборки количество бит в каждой выборке или размер контейнера, в котором находится каждая выборка. Например, если каждая выборка 20 бит внутри 24-битного контейнера, должно ли это поле быть установлено на 20 или 24? В спецификации говорится, что это поле «определяет количество бит данных, используемых для представления каждой выборки каждого канала», что, по-видимому, интерпретировалось в любом случае.

В файле WAVE_FORMAT_EXTENSIBLE эта неоднозначность устранена. В этом типе файла биты на поле выборки всегда должны быть установлены на размер контейнера одной выборки, а допустимые биты на поле выборки в расширении должны быть установлены на количество бит, которые действительно важны. Например, если файл содержит 20-битные выборки в 24-битных контейнерах, то исходные биты на поле выборки должны быть установлены на 24, а допустимые биты на поле выборки в расширении должны быть установлены на 20.

Маска канала - В обычном файле без WAVE_FORMAT_EXTENSIBLE 1-й канал определен для сопоставления с левым динамиком, 2-й канал - с правым динамиком, но отображение оставшихся каналов → динамиков не определено. Поле маски канала позволяет вам определять конкретные сопоставления динамиков для каждого канала (например, для файла объемного звука с 6 каналами). Можно сопоставить 18 определенных динамиков.

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

Например, если в 4-канальном файле каналы должны быть сопоставлены (по порядку) с передним левым, передним правым, задним левым и задним правым динамиками, поле маски канала должно быть установлено на 00000000 00000000 00000000 00110011 , что эквивалентно 0x00000033 . (Однако помните, что это следует хранить как значение с прямым порядком байтов, а не с прямым порядком байтов, как это может подразумеваться).

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

Если количество каналов превышает количество битов, установленных в этом поле, оставшиеся каналы будут иметь неопределенное сопоставление динамиков. Если в сопоставлении громкоговорителей установлено больше битов, чем количество каналов, дополнительные биты следует игнорировать.Чтобы явно указать, что ни один канал не назначен какому-либо конкретному динамику, установите в этом поле значение 0 .

В спецификации говорится, что если старший бит этого поля установлен на 1 (например, 0xFFFFFFFF ), это означает, что «объект поддерживает все возможные конфигурации каналов». Честно говоря, я не понимаю, что это значит.

GUID субформата - определяет формат данных выборки в блоке данных. Поскольку код формата уже будет установлен на 65534 , чтобы указать WAVE_FORMAT_EXTENSIBLE, этот GUID вместо этого указывает формат образца.Некоторые сопоставления GUID включают:

Фрагмент фактов

Блок фактов указывает, сколько кадров выборки находится в файле. Если код формата 1 , это необязательно; в противном случае это необходимо.

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

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

Это не требуется для целочисленных данных PCM (код формата 1 ), потому что общее количество кадров выборки может быть получено путем деления поля байтов на кадр выборки в блоке формата на общее количество байтов в теле блока данных. .Например, если тело блока данных составляет 352 800 байтов, а количество байтов на кадр выборки равно 4 (например, два 16-битных канала), то общее количество кадров выборки составляет 352 800 & div; 4 = 88 200.

Блок данных

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

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

Целочисленный блок данных PCM

Код формата: 1

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

Важно! Обратите внимание, что 8-битные выборки беззнаковые, в то время как большая битовая глубина подписана.

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

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

Например, для 2-канального файла с 16-битными выборками PCM данные выборки будут выглядеть следующим образом:

LSB означает «младший байт», а MSB означает «старший значащий байт».

Блок данных PCM с плавающей запятой

Код формата: 3

В качестве альтернативы, выборки PCM могут быть сохранены как значения с плавающей запятой. По сути, это то же самое, что и целочисленный формат PCM (т.е. код формата 1 ), за исключением того, что выборки находятся в диапазоне -1.От 0 до 1.0. Число битов на поле выборки должно быть установлено на 32 или 64 , чтобы указать точность значений. Образцы кадров должны быть расположены так же, как описано в разделе «Целочисленный блок данных PCM» выше.

Расширяемый блок данных

Код формата: 65534

Поскольку WAVE_FORMAT_EXTENSIBLE является контейнерным форматом, код формата 65534 не подразумевает какой-либо конкретный формат образца. Вместо этого формат образца обозначается идентификатором GUID субформата в расширении блока формата.Например, если GUID субформата является GUID для целочисленного PCM, то образцы будут в том же формате, как если бы код формата был 1 .

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

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