Укажите чему равен старший бит числа 200 dec если его хранить в памяти как слово
Задание 1. Как в памяти компьютера представляются целые положительные и отрицательные числа?
Числа в памяти компьютера хранятся в ячейках, а минимальный размер одной ячейки – 8 битов (1 байт). Числа в двоичной системе счисления и записываются к правому краю и оставшиеся слева записываем нулями (чем левее разряд, тем он старше). Знак числа хранит самый старший разряд (первый по списку слева). Если стоит 0 – число положительное, если 1 – число отрицательное.Самое большое целое положительное число 011111112 = 12710
Задание 2. Укажите, каков был бы диапазон значений целых чисел, если бы для их хранения использовалась четырехразрядная ячейка.
Задание 3. Запишите внутреннее представление следующих десятичных чисел, используя восьмиразрядную ячейку: а) 32; б) –32; в) 102; г) –102; д) 126; е) –126.
а) 32 число положительное
3210 = 1000002
Ответ: 00100000
б) –32 число отрицательное
1) 3210 = 001000002
2) Обратный код: 11011111
3) Прибавим единицу: 11011111 + 1 = 11100000
Ответ: 11100000
в) 102 число положительное
10210 = 11001102
Ответ: 01100110
г) –102 число отрицательное
1) 10210 = 011001102
2) Обратный код: 10011001
3) Прибавим единицу: 10011001 + 1 = 10011010
Ответ: 10011010
д) 126 число положительное
12610 = 11111102
Ответ: 01111110
е) –126 число отрицательное
1) 12610 = 011111102
2) Обратный код: 10000001
3) Прибавим единицу: 10000001 + 1 = 10000010
Ответ: 10000010
Задание 4. Определите, каким десятичным числам соответствуют следующие двоичные коды восьмиразрядного представления целых чисел: а) 00010101; б) 11111110; в) 00111111; г) 10101010.
а) 00010101 число положительное
101012 = 1*2 4 + 1*2 2 + 1 = 16 + 4 + 1 = 2110
Ответ: 21
б) 11111110 число отрицательное
1) Вычтем единицу: 11111110 – 1 = 11111101
2) Обратный код: 00000010
3) 102 = 210
Ответ: –2
в) 00111111 число положительное
1111112 = 1*2 5 + 1*2 4 + 1*2 3 + 1*2 2 + 1*2 1 + 1 = 32 + 16 + 8 + 4 + 2 + 1 = 6110
Ответ: 61
г) 10101010 число отрицательное
1) Вычтем единицу: 10101010 – 1 = 10101001
2) Обратный код: 01010110
3) 10101102 = 1*2 6 + 1*2 4 + 1*2 2 + 2 = 64 + 16 + 4 + 2 = 8610
Ответ: –86
Определить количество элементов массива, у которых индекс строго меньше N, а старший бит равен 1
Даны массив А и целое число N <=25. Определить количество его элементов, у которых индекс строго.
Установить, что старший и младший бит числа равны 1
Здравствуйте, нужно сгенерировать случайное 16 битное число и установить его старший и младший бит.
Каким образом можно проверить старший бит у числа?
Ребята подскажите пожалуйста, каким образом можно проверить старший бит у числа из 2 байтов? Что.
Определить, что старший байт числа равен значению переменной с
Вот такое задание. Буду рада хотя бы алгоритму выполнения. Дана переменная char c. Напишите.
Старший бит в числе 200 = 128.
Constantin Cat, а как такое решать?
Добавлено через 47 секунд
Constantin Cat, а как такое решать?
Решение
Представим слово как степени двойки, вес бита и значение самого битаСташий бит числа 200, записаное как слово =0, его вес =32768
Бит 8, младший и старший бит (по книге)
Добрый день. Вот читаю книгу, и не пойму элементарной на первый взгляд вещи. Как понять.
Сдвиговые операции: установить регистр EBХ в значение 1, если 14-й бит исходного числа равен 1
Друзья, как сделать это чудо, я не понимаю, что к чему? Расскажите пожалуйста подробнее! 1. В.
Дано натурально число. Определить, сколько в нем встречаются минимальная цифра (например, для числа 102 200 ответ равен 3 для числа 40 330 - 2)
Дано натурально число. Определить, сколько в нем встречаются минимальная цифра (например, для числа.
Старший бит
Допустим число 4 представляю в двоичной системе счисления получается 0100. В етом двоичном числе.
Присвоить старший бит char
Здравствуйте, в DirectInput вот так определяю нажата ли клавиша: KeyStateBuffer & 0x8000f //если.
Старший (первый) бит переменной типа byte
Вопрос в следующем, как в переменной типа byte узнать значение первого бита (1 или 0)? Как это.
Здесь я хочу рассказать и обсудить несколько алгоритмов для нахождения старшего единичного бита числа.
На всякий случай, поясню: старшим битом называется единичный бит числа, отвечающий за самую большую степень двойки. Иными словами, это самая большая степень двойки, не превосходящая числа. Чтобы избежать многих случаев, будем здесь считать, что мы имеем дело с натуральным числом в пределах от 1 до 2^31 — 1 включительно. Кроме того, чтобы не слишком углубляться в теорию вероятности, будем считать, что число, в котором требуется определить старший бит, с одинаковой вероятностью будет любым из возможных чисел.
Для начала, рассмотрим самый простой, первым приходящий в голову алгоритм. Давайте переберём все степени двойки, и выберем из них максимальную, которая не превосходит числа. Здесь, очевидно, можно воспользоваться монотонностью этого свойства, то есть тем, что если какая-то степень двойки не превосходит числа, то и меньше степени и подавно не превосходят. Поэтому, это метод можно написать очень просто:
(тут я использую java, но, думаю, понятно будет всем, в силу нативности кода)
Посмотрим, как долго он может работать. Если считать, что число с одинаковой вероятностью оказывается любым из обозначенного промежутка, то, с вероятностью 1/2, а именно, если х окажется не меньше, чем 2^30, цикл while не отработает ни одного раза. С вероятностью 1/4, а именно, если х находится в промежутке от 2^29 до 2^30 — 1, цикл отработает один раз. И так далее. Несложно понять, что это означает, что цикл отрабатывает в среднем полраза. Что весьма неплохо в среднем, но плохо в худшем случае: на числе х=1 цикл отработает все тридцать раз.
Следующий алгоритм лишён этой неприятности; а точнее, он лишён неопределённости во времени работы вообще. Я для начала продемонстрирую код, а потом объясню принцип работы.
Итак, пусть дано число х=000001bbbbb (я не следил за необходимым количеством бит в числе, b означает любой бит). Тогда
Таким образом, первое действие вслед за старшей единичкой, где бы она не оказалась, ставит следующую. Второе, как можно понять, ставит за этими двумя ещё две. Третее — ещё 4 (если есть, куда ставить). И так далее. Таким образом, в числе все биты после старшего оказываются единичными. Тогда понятно, что x — (x >> 1) выдаёт нам правильный ответ.
Третий алгоритм не совсем лишён произвола во времени работы, но в худшем случае, тем не менее, работает значительно быстрее первого. Он основан на бинпоиске. Попробуем взять средний бит, например, 16-тый, и сформируем условие на то, будет старший бит младшей 16-го, или нет. Понятно, что таким условием будет x < 1 << 16. Значит, надо сохранить результат проверки:
ну а дальше, конечно, надо проверить, нельзя ли подвинуть t ещё на 8 бит, потом на 4, на 2, и на 1:
Итак, второй и третий алгоритмы работают в среднем дольше, чем первый (что и подтверждает непосредственный эксперимент, а так же то, что третий алгоритм работает чуть-чуть быстрее второго), но в худшем случае они работают быстрее.
Кроме того, надо заметить одну вещь. В первом методе используется магическая константа 1 << 30. Её использование основано на том, что мы знаем, что число с равной вероятностью бывает любым от 1 до 2^31 — 1. Если числа бывают меньшими, то можно уменьшить и константу. Например, если числа от 1 до 100000, то можно начинать с int t = 1 << 17. Но что если мы не знаем, какими будут числа, для которых используется метод? Если они теоретически могут быть равными до 2^31 — 1, а на самом деле они будут не больше 1000. Тогда нам придётся поставить int t = 1 << 30, и этот метод (как, опять же, подтверждают эксперименты), будет работать значительно дольше, чем последующие два. То есть, первый метод не только может иногда работать долго, но и может оказаться, что он в среднем работает дольше. Время его работы может оказаться непредсказуемым. Тогда как все эти непряитности совершенно не относятся к остальным двум методам.
Наконец, ещё один нюанс. Три вышеперечисленных алгоритма возвращают именно степень двойки — число вида 2^k. Но что, если нам надо найти именно k? Первый и третий методы легко преобразуются так, чтобы выдавать показатель степени, а не саму степень. Первый алгоритм начинает работать несколько быстрее, третий — чуть-чуть дольше. Но второй алгоритм к этому совершенно не приспособлен. Таким образом, второй алгоритм тоже имеет свой специфический минус.
Тебе известно, что компьютер работает только с двоичным кодом. \(0\) и \(1\) обозначают два устойчивых состояния: вкл/выкл, есть ток/нет тока и т. д. Оперативная память представляет собой контейнер, который состоит из ячеек. В каждой ячейке хранится одно из возможных состояний: \(0\) или \(1\). Одна ячейка — \(1\) бит информации или представляет собой разряд некоторого числа.
Целые числа в памяти компьютера хранятся в формате с фиксированной запятой . Такие числа могут храниться в \(8\), \(16\), \(32\), \(64\)-разрядном формате.
Для целых неотрицательных чисел в памяти компьютера выделяется \(8\) ячеек (бит) памяти.
Минимальное число для такого формата: \(00000000\). Максимальное: \(11111111\).
Переведём двоичный код в десятичную систему счисления и узнаем самое большое число, которое можно сохранить в восьмибитном формате.
1 × 2 7 + 1 × 2 6 + 1 × 2 5 + 1 × 2 4 + 1 × 2 3 + 1 × 2 2 + 1 × 2 1 + 1 × 2 0 = 255 10 .
Если целое неотрицательное число больше \(255\), то оно будет храниться в \(16\)-разрядном формате и занимать \(2\) байта памяти, то есть \(16\) бит.
Подумай! Какое самое большое число можно записать в \(16\)-разрядном формате?
Чем больше ячеек памяти отводится под хранение числа, тем больше диапазон значений.
В таблице указаны диапазоны значений для \(8\), \(16\) и \(32\)-разрядных форматов.
Для \(n\)-разрядного представления диапазон чисел можно вычислить следующим образом: от \(0\) до 2 n − 1 .
Запишем целое беззнаковое число \(65\) в восьмиразрядном представлении. Достаточно перевести это число в двоичный код.
Это же число можно записать и в \(16\)-разрядном формате.
Для целых чисел со знаком в памяти отводится \(2\) байта информации (\(16\) бит). Старший разряд отводится под знак: \(0\) — положительное число; \(1\) — отрицательное число. Такое представление числа называется прямым кодом.
Для хранения отрицательных чисел используют дополнительный и обратный коды, которые упрощают работу процессора. Но об этом ты узнаешь в старших классах.
Читайте также: