Перейти к содержимому

Как определить четность двоичного числа

  • автор:

6. Чётные числа в двоичной системе всегда оканчиваются на 0, а нечётные – на 1.

При выполнении арифметических операций в ЭВМ применяют специальные коды для представления чисел: прямой, обратный и дополнительный коды чисел.

Прямой код двоичного числа – это само двоичное число.

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

Пример: Дано число X=-1011. Перевести число в обратный код. Хобр=1.0100

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

Пример: Дано число X=-1011. Перевести в дополнительный код. Хдоп=1.0101

11. Варианты заданий с решением

1. Дано: ,. Какое из чисел С, записанных в двоичной системе счисления, удовлетворяет неравенству?

Решение:При переводеaиbв двоичное представление, получим:a=AA16 =101010102 ,b=2558 =101011012 . Отсюда следует, что подходит значение 101011002,

2. Чему равна сумма чисел 718 и 1F16?

Решение:Надо представить числа в двоичном виде и поразрядно сложить:

718=1110012каждая цифра в 8-ой системе представляется 3-мя битами, 1F16=111112каждая цифра в 16-ой системе представляется 4-мя битами.(Представление 8-х и 16-х чисел в двоичном виде надо знать!)

Полученное двоичное число представим в 8-м и 16-м виде: 10110002=5816=1308 =8810.

3. Для передачи по каналу связи сообщения, состоящего только из символов А, Б, В и Г используется посимвольное кодирование: А-0, Б-11, В-100, Г-011. Через канал связи передается сообщение: ГБАВАВГ. Закодируйте сообщение данным кодом. Полученную двоичную последовательность переведите в восьмеричный код.

1) DBACACD2) 75043 3) 7A23 4) 3304043

Решение:Заменяя в сообщении буквы на соответствующий код, получим следующую последовательность:

0111101000100011. Разобьем эту последовательность на триады справа налево: 111 101 000 100 011, представив каждую триаду в виде 8-го числа, получим: 75043

4. Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 26, запись которых в троичной системе счисления оканчивается на 22?

Решение: Для решения задачи достаточно рассмотреть следующие числа в троичной системе счисления: 223, 1223, 2223 и перевести их в десятичную систему счисления:

5. Сколько единиц в двоичной записи десятичного числа 513?

1) 5 2) 2 3) 3 4) 4

Решение: 513=512+1 => 512=2 9 = 10000000002 => 513= 10000000002 +1=10000000012

6. Сколько значащих нулей в двоичной записи числа 254?

1) 1 2) 2 3) 4 4) 8

Решение: 254=255 — 1 => 255=2 8 -1=111111112 – 1=111111102

7. Для хранения целого числа со знаком используется один байт. Сколько единиц содержит внутреннее представление числа (-78)?

1) 3 2) 4 3) 5 4) 6

  1. переводим число 78 в двоичную систему счисления:

78 = 64 + 8 + 4 + 2 = 2 6 + 2 3 + 2 2 + 2 1 = 10011102

  1. по условию число занимает в памяти 1 байт = 8 бит, поэтому нужно представить число с помощью 8 разрядов, причем старший разряд — знаковый
  2. в прямом коде число будет представлено в виде:

110011102

  1. делаем инверсию битов (заменяем везде, кроме знакового разряда, 0 на 1 и 1 на 0) и получим число в обратном коде:

110011102 → 101100012

  1. добавляем к результату единицу и получим число в дополнительном коде:

101100012 + 1 = 101100102

  1. в записи этого числа 4 единицы

Ответ: 2 8. Запись числа 6710 в системе счисления с основанием N оканчивается на 1 и содержит 4 цифры. Чему равно основание этой системы счисления N? Решение 1: Начнем с двоичной системы. Для хранения числа 67 необходимо 7 цифр, т.к. 6410 в троичную систему. Но полный перевод делать не надо, т.к. нас интересует только первый остаток, на него и будет оканчиваться 67 в троичной системе. 67| 36 22 7 6 1 Остаток равен 1. Следовательно, и второе условие выполнено, поэтому троичная система подходит. Основание троичной системы равно 3. Ответ:3 Решение 2:Так как запись в системе счисления с основанием N заканчивается на 1, то остаток от деления числа 67 на N равен 1. Таким образом можно записать, что при некотором целом: Из последнего выражения видно, что N (основание системы счисления) является делителем числа 66. Делителями числа 66 являются следующие натуральные числа: 2, 3,6, 11, 22, 33, 66. Но нам известно, что запись числа содержит 4 цифры, то есть Выпишем кубы и четвертые степени первых натуральных чисел, которые являются делителями числа 66: Видно, что из этого списка только для числа N = 3 выполняется условие . Таким образом, ответ – 3. Проверим это, переведя число 67 в троичную систему: 6710= 21113Ответ:3 9. Все 5-буквенные слова, составленные из букв А, О, У, записаны в алфавитном порядке. Вот начало списка: 1.ААААА 2.ААААО 3.ААААУ 4.АААОА …… Запишите слово, которое стоит на 240-м месте от начала списка. Решение: Из списка видно, что используются только символы: «А», «О», «У». Пусть «А»=0, «О»=1, «У»=2. Список после замены станет таким:

  1. 00000
  2. 00001
  3. 00002
  4. 00010

Видно, что это числа, идущие по порядку от нуля в троичной системе. В десятичной системе счисления список бы был таким: 0, 1 , 2, 3. Нам нужно найти, какое число будет стоять на 240 месте. Т.к. список чисел начинается с нуля, следовательно, нам нужно перевести число 239 в троичную систему счисления. Получим число: 222123. Переведем обратно в символы: УУУОУ. Ответ: УУУОУ 10. В таблице ниже представлена часть кодовой таблицы ASCII:

Символ 1 5 A B Q a b
Десятичный код 49 53 65 66 81 97 98
Шестнадцатеричный код 31 35 41 42 51 61 62

Каков шестнадцатеричный код символа “q” ? Решение: Q-A=81-65=16 => q-a=16 => q-97=16 => q=97+16=113 => 11310 =7116 113| 16112 7 1 Ответ: 71 11. Решите уравнение . Ответ запишите в шестеричной системе счисления. Основание системы счисления указывать не нужно. Решение:Надо перевести все числа в десятичную систему, решить уравнение и результат перевести в шестеричную систему: 1)

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

Ответ: 23 12. Запись десятичного числа в системах счисления с основаниями 3 и 5 в обоих случаях имеет последней цифрой 0. Какое минимальное натуральное десятичное число удовлетворяет этому требованию? Решение:если запись числа в системе счисления с основанием N заканчивается на 0, то это число делится на N нацело, поэтому в данной задаче требуется найти наименьшее натуральное число, которое делится одновременно на 3 и на 5, то есть это число15. Ответ:15 13. Укажите, сколько всего раз встречается цифра 2 в записи чисел 10, 11, 12, …, 17 в системе счисления с основанием 5. Решение (вариант 1):При решении задачи надо помнить, что в 5-ой системе счисления самая старшая цифра – 4. Запишем первое и последнее число в заданном диапазоне в системе счисления с основанием 5: 10 = 205, 17 = 325 . Оба они содержат цифру 2, так что, 2 цифры мы уже нашли. Между 205 и 325 есть еще числа: 215, 225, 235, 245, 305, 315. В них 5 цифр 2 (в числе 225 – сразу две двойки), поэтому всего цифра 2 встречается 7 раз. Ответ: 7 Решение (вариант 2): Можно перевести все указанные числа в систему счисления с основанием 5 и подсчитать количество 2: 10 = 205, 11 = 215, 12 = 225, 13 = 235, 14 = 245, 15 = 305, 16 = 315, 17 = 325 . Получается 7 штук. Ответ: 7 14. Укажите наименьшее основание системы счисления, в которой запись числа 30 трехзначна. Решение (вариант 1):Обозначим черезнеизвестное основание системы счисления, тогда запись числа 30 в этой системе имеет вид: Любое число в позиционной системе счисления можно представить в виде многочлена по основанию системы счисления: По условию задачи запись числа трехзначная, т.е., поэтому: Из неравенства видно, что подходят только два числа для N – 4 и 5: Минимальное из этих значений – 4. Ответ: 4 Решение (вариант 2):Так как число по условию трехзначное, то достаточно найти первое целое число, куб которого больше 30; это — 4, так как: Так как , следовательно, в системе счисления с основанием 4 запись числа 30 трехзначна. Ответ: 4 15. Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 30, запись которых в системе счисления с основанием 5 начинается на 3? Решение (вариант 1):Сначала определим, сколько цифр может быть в этих числах, записанных в системе счисления с основанием 5. Так как, в интересующих нас числах может быть от 1 до 3 цифр. Трехзначные числа, начинающиеся на 3 в системе с основанием 5 можно представить: Все они заведомо не меньше , поэтому в наш диапазон не попадают. Таким образом, остается рассмотреть только однозначные и двухзначные числа. Есть всего одно однозначное число, начинающееся на 3, это 3. Общий вид всех двузначных чисел, начинающихся на 3 в системе с основанием 5: , где – целое число из множества (поскольку система счисления имеет основание 5 и цифр, больших 4, в записи числа быть не может). Используя эту формулу, находим интересующие нас двузначные числа – 15, 16, 17, 18 и 19. Ответ: 3, 15, 16, 17, 18, 19 Решение (вариант 2):Поскольку, в интересующих нас числах может быть не более 2 цифр (все трехзначные пятеричные числа, начинающиеся с 3, больше 30). Есть всего одно однозначное число, начинающееся на 3, это 3. Выпишем все пятеричные двузначные числа, которые начинаются с 3, и переведем их в десятичную систему: 305= 15, 315= 16, 325= 17, 335= 18 и 345= 19. Ответ: 3, 15, 16, 17, 18, 19 16. Чему равно наименьшее основание позиционной системы счисления , при котором 225x= 405y? Ответ записать в виде целого числа. Решение:Поскольку в левой и в правой частях есть цифра 5, оба основания больше 5, то есть перебор имеет смысл начинать с. Для каждого «подозреваемого» вычисляем значениеи решаем уравнение, причем, нас интересуют только натуральные. Для инужных решений нет, а дляполучаем так что. Ответ: 8 17. Даны 4 числа, они записаны с использованием различных систем счисления. Укажите среди этих чисел то, в двоичной записи которого содержится ровно 6 единиц. Если таких чисел несколько, укажите наибольшее из них. 1) 6310 * 4102) F816 + 1103) 33384) 111001112Решение:Нужно перевести все заданные числа в двоичную систему, подсчитать число единиц и выбрать наибольшее из чисел, в которых ровно 6 единиц. Для первого варианта переведем оба сомножителя в двоичную систему: 63­10 = 111111­2 410 = 100­2 В первом числе ровно 6 единиц, умножение на второе добавляет в конец два нуля: 63­10 * 410 = 111111­2 * 100­2 = 111111­002 то есть в этом числе 6 единиц. Для второго варианта воспользуемся связью между шестнадцатеричной и двоичной системами счисления: каждую цифру шестнадцатеричного числа можно переводить отдельно в тетраду (4 двоичных цифры): F­16 = 1111­2 816 = 100­02 F816 = 1111 10002 после добавления единицы F816 + 1 = 1111 10012 также получаем число, содержащее ровно 6 единиц, но оно меньше, чем число в первом варианте ответа. Для третьего варианта используем связь между восьмеричной и двоичной системами: каждую цифру восьмеричного числа переводим отдельно в триаду (группу из трёх) двоичных цифр: 3338 = 011 011 011­2 = 110110112 это число тоже содержит 6 единиц, но меньше, чем число в первом варианте ответа. Последнее число 111001112 уже записано в двоичной системе, оно тоже содержит ровно 6 единиц, но меньше первого числа Таким образом, все 4 числа, указанные в вариантах ответов содержат ровно 6 единиц, но наибольшее из них – первое Ответ: 1 18. Даны 4 целых числа, записанные в двоичной системе: 10001011, 10111000, 10011011, 10110100. Сколько среди них чисел, больших, чем А416 +208? 1) 1 2) 2 3) 3 4) 4 Решение:Надо перевести А416+208 в двоичную систему счисления, разложив их по тетрадам для 16-х чисел и по триадам для 8-х чисел: А416— 101001002и 208— 100002и поразрядно сложить: 101001002+ 100002= 101101002. Сравнив с заданными числами, видим, что только одно число больше полученного, это: 10111000. Ответ: 1 19. Найти сумму восьмеричных чисел 178 +1708 +17008 +. +17000008, перевести в 16-ую систему счисления. Найдите в записи числа, равного этой сумме, третью цифру слева. Решение:Несложно выполнить прямое сложение восьмеричных чисел, там быстро обнаруживается закономерность: 178+ 1708= 2078178+ 1708+ 17008= 21078178+ 1708+ 17008+ 170008= 211078178+ 1708+ 17008+ 170008+ 1700008= 2111078178+ 1708+ 17008+ 170008+ 1700008+ 17000008= 21111078 Переведем последнюю сумму через триады в двоичный код (заменяем каждую восьмеричную цифру на 3 двоичных): 100010010010010001112 Теперь разбиваем цепочку на тетрады (группы из 4-х двоичных цифр), начиная справа, и каждую тетраду представляем в виде шестнадцатеричной цифры 8924716 Третья цифра слева: 2. Ответ: 2 20. В системе счисления с некоторым основанием число 17 записывается в виде 122. Укажите это основание. Решение: Обозначим искомое основание системы счисления через x, тогда можно записать выражение: 17 = x 2 +2 x+2 или x 2 +2 x-15 = 0. Решив это уравнение, получим x=3. Ответ: 3

Как определить четность двоичного числа

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Чётные числа в двоичной системе всегда оканчиваются на 0, а нечётные – на 1.

При выполнении арифметических операций в ЭВМ применяют специальные коды для представления чисел: прямой, обратный и дополнительный коды чисел.

Прямой код двоичного числа – это само двоичное число.

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

Пример: Дано число X=-1011. Перевести число в обратный код. Хобр=1.0100

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

Пример: Дано число X=-1011. Перевести в дополнительный код. Хдоп=1.0101

Варианты заданий с решением

1. Дано: , . Какое из чисел С, записанных в двоичной системе счисления, удовлетворяет неравенству ?

Решение: При переводе a и b в двоичное представление, получим: a = AA 16 =101010102 , b =2558 =101011012. Отсюда следует, что подходит значение 101011002,

Ответ: 4

2. Чему равна сумма чисел 718 и 1F16?

Решение: Надо представить числа в двоичном виде и поразрядно сложить:

718=1110012 каждая цифра в 8-ой системе представляется 3-мя битами, 1F16=111112 каждая цифра в 16-ой системе представляется 4-мя битами. (Представление 8-х и 16-х чисел в двоичном виде надо знать!)

Полученное двоичное число представим в 8-м и 16-м виде: 10110002=5816=1308 =8810.

Ответ: 4

3. Для передачи по каналу связи сообщения, состоящего только из символов А, Б, В и Г используется посимвольное кодирование: А-0, Б-11, В-100, Г-011. Через канал связи передается сообщение: ГБАВАВГ. Закодируйте сообщение данным кодом. Полученную двоичную последовательность переведите в восьмеричный код.

1) DBACACD 2) 75043 3) 7A23 4) 3304043

Решение: Заменяя в сообщении буквы на соответствующий код, получим следующую последовательность:

0111101000100011. Разобьем эту последовательность на триады справа налево: 111 101 000 100 011, представив каждую триаду в виде 8-го числа, получим: 75043

Ответ: 2

4. Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 26, запись которых в троичной системе счисления оканчивается на 22?

Решение: Для решения задачи достаточно рассмотреть следующие числа в троичной системе счисления: 223, 1223, 2223 и перевести их в десятичную систему счисления:

Проверить четность/нечетность числа не используя %

Похоже, что вопрос на понимание двоичного представления целого числа.

Например для представления типа byte используется 8 бит (8 числел в двоичной системе исчисления, которые могут принимать значение 0 или 1), соответственно :

000 = 0000 0000 001 = 0000 0001 002 = 0000 0010 003 = 0000 0011 . 126 = 0111 1110 127 = 0111 1111 

Первый бит(здесь и далее буду считать слева) используется для хранения знака числа и будет использован для представления отрицательных чисел:

-001 = 1111 1111 -002 = 1111 1110 . -127 = 1000 0001 -128 = 1000 0000 

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

Как конкретно реализовать проверку — зависит от вашей фантазии:

// к типу long может быть неявно преобразован // любой целочисленный тип - преобразование безопасно public static boolean isOdd1(long input) < // для проверки нам нужен только один бит, все остальные // нужно приравнять к 0, для этого применим побитовое умножение // если число умножить на 0, получим 0 // если число умножить на 1, получим исходное число (0 или 1) // пример преобразования для byte (8 бит) // (XXXX XXXX) & (0000 0001) = (0000 000X) // в коде используется тип long, т.е используется 64 бита long filterMask = 1; // маска для фильтрации - аналог (0000 0001) long filteredInput = filterMask & input; // проверка результата - сравниваем X c 1 // где X может быть 0 или 1 соответственно // (0000 000X) == (0000 0001) boolean result = (filteredInput == 1); return result; // или одной строкой return (input & 1) == 1; >

Вот еще «плохой» пример (но работает):

public static boolean isOdd2(long input) < //получаем строку с двоичным представлением числа String stringRepresentation = Long.toBinaryString(input); // проверяем, что последний элемент равен 1 boolean result = stringRepresentation.endsWith("1"); return result; >

Еще несколько интересных моментов:

Побитовые операторы неявно преобразуют тип к int (или long если один из элементов long). Т.е. следующий код не скомпилируется

public static boolean isOdd3(byte input)

OddTester.java:ХХ: error: incompatible types: possible lossy conversion from int to byte byte filteredInput = filterMask & input; ^ 1 error

Побитовые операторы не поддерживают ускоренное вычисление

public static void shortTest() < String s = null; //s.equals("") не будет выполнено, т.к первое условие дало false if (s == null && s.equals("")); if (s == null & s.equals("")); //NPE >

6. Чётные числа в двоичной системе всегда оканчиваются на 0, а нечётные – на 1.

При выполнении арифметических операций в ЭВМ применяют специальные коды для представления чисел: прямой, обратный и дополнительный коды чисел.

Прямой код двоичного числа – это само двоичное число.

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

Пример: Дано число X=-1011. Перевести число в обратный код. Хобр=1.0100

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

Пример: Дано число X=-1011. Перевести в дополнительный код. Хдоп=1.0101

11. Варианты заданий с решением

1. Дано: ,. Какое из чисел С, записанных в двоичной системе счисления, удовлетворяет неравенству?

Решение:При переводеaиbв двоичное представление, получим:a=AA16 =101010102 ,b=2558 =101011012 . Отсюда следует, что подходит значение 101011002,

2. Чему равна сумма чисел 718 и 1F16?

Решение:Надо представить числа в двоичном виде и поразрядно сложить:

718=1110012каждая цифра в 8-ой системе представляется 3-мя битами, 1F16=111112каждая цифра в 16-ой системе представляется 4-мя битами.(Представление 8-х и 16-х чисел в двоичном виде надо знать!)

Полученное двоичное число представим в 8-м и 16-м виде: 10110002=5816=1308 =8810.

3. Для передачи по каналу связи сообщения, состоящего только из символов А, Б, В и Г используется посимвольное кодирование: А-0, Б-11, В-100, Г-011. Через канал связи передается сообщение: ГБАВАВГ. Закодируйте сообщение данным кодом. Полученную двоичную последовательность переведите в восьмеричный код.

1) DBACACD2) 75043 3) 7A23 4) 3304043

Решение:Заменяя в сообщении буквы на соответствующий код, получим следующую последовательность:

0111101000100011. Разобьем эту последовательность на триады справа налево: 111 101 000 100 011, представив каждую триаду в виде 8-го числа, получим: 75043

4. Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 26, запись которых в троичной системе счисления оканчивается на 22?

Решение: Для решения задачи достаточно рассмотреть следующие числа в троичной системе счисления: 223, 1223, 2223 и перевести их в десятичную систему счисления:

5. Сколько единиц в двоичной записи десятичного числа 513?

1) 5 2) 2 3) 3 4) 4

Решение: 513=512+1 => 512=2 9 = 10000000002 => 513= 10000000002 +1=10000000012

6. Сколько значащих нулей в двоичной записи числа 254?

1) 1 2) 2 3) 4 4) 8

Решение: 254=255 — 1 => 255=2 8 -1=111111112 – 1=111111102

7. Для хранения целого числа со знаком используется один байт. Сколько единиц содержит внутреннее представление числа (-78)?

1) 3 2) 4 3) 5 4) 6

  1. переводим число 78 в двоичную систему счисления:

78 = 64 + 8 + 4 + 2 = 2 6 + 2 3 + 2 2 + 2 1 = 10011102

  1. по условию число занимает в памяти 1 байт = 8 бит, поэтому нужно представить число с помощью 8 разрядов, причем старший разряд — знаковый
  2. в прямом коде число будет представлено в виде:

110011102

  1. делаем инверсию битов (заменяем везде, кроме знакового разряда, 0 на 1 и 1 на 0) и получим число в обратном коде:

110011102 → 101100012

  1. добавляем к результату единицу и получим число в дополнительном коде:

101100012 + 1 = 101100102

  1. в записи этого числа 4 единицы

Ответ: 2 8. Запись числа 6710 в системе счисления с основанием N оканчивается на 1 и содержит 4 цифры. Чему равно основание этой системы счисления N? Решение 1: Начнем с двоичной системы. Для хранения числа 67 необходимо 7 цифр, т.к. 6410 в троичную систему. Но полный перевод делать не надо, т.к. нас интересует только первый остаток, на него и будет оканчиваться 67 в троичной системе. 67| 36 22 7 6 1 Остаток равен 1. Следовательно, и второе условие выполнено, поэтому троичная система подходит. Основание троичной системы равно 3. Ответ:3 Решение 2:Так как запись в системе счисления с основанием N заканчивается на 1, то остаток от деления числа 67 на N равен 1. Таким образом можно записать, что при некотором целом: Из последнего выражения видно, что N (основание системы счисления) является делителем числа 66. Делителями числа 66 являются следующие натуральные числа: 2, 3,6, 11, 22, 33, 66. Но нам известно, что запись числа содержит 4 цифры, то есть Выпишем кубы и четвертые степени первых натуральных чисел, которые являются делителями числа 66: Видно, что из этого списка только для числа N = 3 выполняется условие . Таким образом, ответ – 3. Проверим это, переведя число 67 в троичную систему: 6710= 21113Ответ:3 9. Все 5-буквенные слова, составленные из букв А, О, У, записаны в алфавитном порядке. Вот начало списка: 1.ААААА 2.ААААО 3.ААААУ 4.АААОА …… Запишите слово, которое стоит на 240-м месте от начала списка. Решение: Из списка видно, что используются только символы: «А», «О», «У». Пусть «А»=0, «О»=1, «У»=2. Список после замены станет таким:

  1. 00000
  2. 00001
  3. 00002
  4. 00010

Видно, что это числа, идущие по порядку от нуля в троичной системе. В десятичной системе счисления список бы был таким: 0, 1 , 2, 3. Нам нужно найти, какое число будет стоять на 240 месте. Т.к. список чисел начинается с нуля, следовательно, нам нужно перевести число 239 в троичную систему счисления. Получим число: 222123. Переведем обратно в символы: УУУОУ. Ответ: УУУОУ 10. В таблице ниже представлена часть кодовой таблицы ASCII:

Символ 1 5 A B Q a b
Десятичный код 49 53 65 66 81 97 98
Шестнадцатеричный код 31 35 41 42 51 61 62

Каков шестнадцатеричный код символа “q” ? Решение: Q-A=81-65=16 => q-a=16 => q-97=16 => q=97+16=113 => 11310 =7116 113| 16112 7 1 Ответ: 71 11. Решите уравнение . Ответ запишите в шестеричной системе счисления. Основание системы счисления указывать не нужно. Решение:Надо перевести все числа в десятичную систему, решить уравнение и результат перевести в шестеричную систему: 1)

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

Ответ: 23 12. Запись десятичного числа в системах счисления с основаниями 3 и 5 в обоих случаях имеет последней цифрой 0. Какое минимальное натуральное десятичное число удовлетворяет этому требованию? Решение:если запись числа в системе счисления с основанием N заканчивается на 0, то это число делится на N нацело, поэтому в данной задаче требуется найти наименьшее натуральное число, которое делится одновременно на 3 и на 5, то есть это число15. Ответ:15 13. Укажите, сколько всего раз встречается цифра 2 в записи чисел 10, 11, 12, …, 17 в системе счисления с основанием 5. Решение (вариант 1):При решении задачи надо помнить, что в 5-ой системе счисления самая старшая цифра – 4. Запишем первое и последнее число в заданном диапазоне в системе счисления с основанием 5: 10 = 205, 17 = 325 . Оба они содержат цифру 2, так что, 2 цифры мы уже нашли. Между 205 и 325 есть еще числа: 215, 225, 235, 245, 305, 315. В них 5 цифр 2 (в числе 225 – сразу две двойки), поэтому всего цифра 2 встречается 7 раз. Ответ: 7 Решение (вариант 2): Можно перевести все указанные числа в систему счисления с основанием 5 и подсчитать количество 2: 10 = 205, 11 = 215, 12 = 225, 13 = 235, 14 = 245, 15 = 305, 16 = 315, 17 = 325 . Получается 7 штук. Ответ: 7 14. Укажите наименьшее основание системы счисления, в которой запись числа 30 трехзначна. Решение (вариант 1):Обозначим черезнеизвестное основание системы счисления, тогда запись числа 30 в этой системе имеет вид: Любое число в позиционной системе счисления можно представить в виде многочлена по основанию системы счисления: По условию задачи запись числа трехзначная, т.е., поэтому: Из неравенства видно, что подходят только два числа для N – 4 и 5: Минимальное из этих значений – 4. Ответ: 4 Решение (вариант 2):Так как число по условию трехзначное, то достаточно найти первое целое число, куб которого больше 30; это — 4, так как: Так как , следовательно, в системе счисления с основанием 4 запись числа 30 трехзначна. Ответ: 4 15. Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 30, запись которых в системе счисления с основанием 5 начинается на 3? Решение (вариант 1):Сначала определим, сколько цифр может быть в этих числах, записанных в системе счисления с основанием 5. Так как, в интересующих нас числах может быть от 1 до 3 цифр. Трехзначные числа, начинающиеся на 3 в системе с основанием 5 можно представить: Все они заведомо не меньше , поэтому в наш диапазон не попадают. Таким образом, остается рассмотреть только однозначные и двухзначные числа. Есть всего одно однозначное число, начинающееся на 3, это 3. Общий вид всех двузначных чисел, начинающихся на 3 в системе с основанием 5: , где – целое число из множества (поскольку система счисления имеет основание 5 и цифр, больших 4, в записи числа быть не может). Используя эту формулу, находим интересующие нас двузначные числа – 15, 16, 17, 18 и 19. Ответ: 3, 15, 16, 17, 18, 19 Решение (вариант 2):Поскольку, в интересующих нас числах может быть не более 2 цифр (все трехзначные пятеричные числа, начинающиеся с 3, больше 30). Есть всего одно однозначное число, начинающееся на 3, это 3. Выпишем все пятеричные двузначные числа, которые начинаются с 3, и переведем их в десятичную систему: 305= 15, 315= 16, 325= 17, 335= 18 и 345= 19. Ответ: 3, 15, 16, 17, 18, 19 16. Чему равно наименьшее основание позиционной системы счисления , при котором 225x= 405y? Ответ записать в виде целого числа. Решение:Поскольку в левой и в правой частях есть цифра 5, оба основания больше 5, то есть перебор имеет смысл начинать с. Для каждого «подозреваемого» вычисляем значениеи решаем уравнение, причем, нас интересуют только натуральные. Для инужных решений нет, а дляполучаем так что. Ответ: 8 17. Даны 4 числа, они записаны с использованием различных систем счисления. Укажите среди этих чисел то, в двоичной записи которого содержится ровно 6 единиц. Если таких чисел несколько, укажите наибольшее из них. 1) 6310 * 4102) F816 + 1103) 33384) 111001112Решение:Нужно перевести все заданные числа в двоичную систему, подсчитать число единиц и выбрать наибольшее из чисел, в которых ровно 6 единиц. Для первого варианта переведем оба сомножителя в двоичную систему: 63­10 = 111111­2 410 = 100­2 В первом числе ровно 6 единиц, умножение на второе добавляет в конец два нуля: 63­10 * 410 = 111111­2 * 100­2 = 111111­002 то есть в этом числе 6 единиц. Для второго варианта воспользуемся связью между шестнадцатеричной и двоичной системами счисления: каждую цифру шестнадцатеричного числа можно переводить отдельно в тетраду (4 двоичных цифры): F­16 = 1111­2 816 = 100­02 F816 = 1111 10002 после добавления единицы F816 + 1 = 1111 10012 также получаем число, содержащее ровно 6 единиц, но оно меньше, чем число в первом варианте ответа. Для третьего варианта используем связь между восьмеричной и двоичной системами: каждую цифру восьмеричного числа переводим отдельно в триаду (группу из трёх) двоичных цифр: 3338 = 011 011 011­2 = 110110112 это число тоже содержит 6 единиц, но меньше, чем число в первом варианте ответа. Последнее число 111001112 уже записано в двоичной системе, оно тоже содержит ровно 6 единиц, но меньше первого числа Таким образом, все 4 числа, указанные в вариантах ответов содержат ровно 6 единиц, но наибольшее из них – первое Ответ: 1 18. Даны 4 целых числа, записанные в двоичной системе: 10001011, 10111000, 10011011, 10110100. Сколько среди них чисел, больших, чем А416 +208? 1) 1 2) 2 3) 3 4) 4 Решение:Надо перевести А416+208 в двоичную систему счисления, разложив их по тетрадам для 16-х чисел и по триадам для 8-х чисел: А416— 101001002и 208— 100002и поразрядно сложить: 101001002+ 100002= 101101002. Сравнив с заданными числами, видим, что только одно число больше полученного, это: 10111000. Ответ: 1 19. Найти сумму восьмеричных чисел 178 +1708 +17008 +. +17000008, перевести в 16-ую систему счисления. Найдите в записи числа, равного этой сумме, третью цифру слева. Решение:Несложно выполнить прямое сложение восьмеричных чисел, там быстро обнаруживается закономерность: 178+ 1708= 2078178+ 1708+ 17008= 21078178+ 1708+ 17008+ 170008= 211078178+ 1708+ 17008+ 170008+ 1700008= 2111078178+ 1708+ 17008+ 170008+ 1700008+ 17000008= 21111078 Переведем последнюю сумму через триады в двоичный код (заменяем каждую восьмеричную цифру на 3 двоичных): 100010010010010001112 Теперь разбиваем цепочку на тетрады (группы из 4-х двоичных цифр), начиная справа, и каждую тетраду представляем в виде шестнадцатеричной цифры 8924716 Третья цифра слева: 2. Ответ: 2 20. В системе счисления с некоторым основанием число 17 записывается в виде 122. Укажите это основание. Решение: Обозначим искомое основание системы счисления через x, тогда можно записать выражение: 17 = x 2 +2 x+2 или x 2 +2 x-15 = 0. Решив это уравнение, получим x=3. Ответ: 3

Проверить четность/нечетность числа не используя %

Похоже, что вопрос на понимание двоичного представления целого числа.

Например для представления типа byte используется 8 бит (8 числел в двоичной системе исчисления, которые могут принимать значение 0 или 1), соответственно :

000 = 0000 0000 001 = 0000 0001 002 = 0000 0010 003 = 0000 0011 . 126 = 0111 1110 127 = 0111 1111 

Первый бит(здесь и далее буду считать слева) используется для хранения знака числа и будет использован для представления отрицательных чисел:

-001 = 1111 1111 -002 = 1111 1110 . -127 = 1000 0001 -128 = 1000 0000 

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

Как конкретно реализовать проверку — зависит от вашей фантазии:

// к типу long может быть неявно преобразован // любой целочисленный тип - преобразование безопасно public static boolean isOdd1(long input) < // для проверки нам нужен только один бит, все остальные // нужно приравнять к 0, для этого применим побитовое умножение // если число умножить на 0, получим 0 // если число умножить на 1, получим исходное число (0 или 1) // пример преобразования для byte (8 бит) // (XXXX XXXX) & (0000 0001) = (0000 000X) // в коде используется тип long, т.е используется 64 бита long filterMask = 1; // маска для фильтрации - аналог (0000 0001) long filteredInput = filterMask & input; // проверка результата - сравниваем X c 1 // где X может быть 0 или 1 соответственно // (0000 000X) == (0000 0001) boolean result = (filteredInput == 1); return result; // или одной строкой return (input & 1) == 1; >

Вот еще «плохой» пример (но работает):

public static boolean isOdd2(long input) < //получаем строку с двоичным представлением числа String stringRepresentation = Long.toBinaryString(input); // проверяем, что последний элемент равен 1 boolean result = stringRepresentation.endsWith("1"); return result; >

Еще несколько интересных моментов:

Побитовые операторы неявно преобразуют тип к int (или long если один из элементов long). Т.е. следующий код не скомпилируется

public static boolean isOdd3(byte input)

OddTester.java:ХХ: error: incompatible types: possible lossy conversion from int to byte byte filteredInput = filterMask & input; ^ 1 error

Побитовые операторы не поддерживают ускоренное вычисление

public static void shortTest() < String s = null; //s.equals("") не будет выполнено, т.к первое условие дало false if (s == null && s.equals("")); if (s == null & s.equals("")); //NPE >

Чётные числа в двоичной системе всегда оканчиваются на 0, а нечётные – на 1.

При выполнении арифметических операций в ЭВМ применяют специальные коды для представления чисел: прямой, обратный и дополнительный коды чисел.

Прямой код двоичного числа – это само двоичное число.

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

Пример: Дано число X=-1011. Перевести число в обратный код. Хобр=1.0100

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

Пример: Дано число X=-1011. Перевести в дополнительный код. Хдоп=1.0101

Варианты заданий с решением

1. Дано: , . Какое из чисел С, записанных в двоичной системе счисления, удовлетворяет неравенству ?

Решение: При переводе a и b в двоичное представление, получим: a = AA 16 =101010102 , b =2558 =101011012. Отсюда следует, что подходит значение 101011002,

Ответ: 4

2. Чему равна сумма чисел 718 и 1F16?

Решение: Надо представить числа в двоичном виде и поразрядно сложить:

718=1110012 каждая цифра в 8-ой системе представляется 3-мя битами, 1F16=111112 каждая цифра в 16-ой системе представляется 4-мя битами. (Представление 8-х и 16-х чисел в двоичном виде надо знать!)

Полученное двоичное число представим в 8-м и 16-м виде: 10110002=5816=1308 =8810.

Ответ: 4

3. Для передачи по каналу связи сообщения, состоящего только из символов А, Б, В и Г используется посимвольное кодирование: А-0, Б-11, В-100, Г-011. Через канал связи передается сообщение: ГБАВАВГ. Закодируйте сообщение данным кодом. Полученную двоичную последовательность переведите в восьмеричный код.

1) DBACACD 2) 75043 3) 7A23 4) 3304043

Решение: Заменяя в сообщении буквы на соответствующий код, получим следующую последовательность:

0111101000100011. Разобьем эту последовательность на триады справа налево: 111 101 000 100 011, представив каждую триаду в виде 8-го числа, получим: 75043

Ответ: 2

4. Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 26, запись которых в троичной системе счисления оканчивается на 22?

Решение: Для решения задачи достаточно рассмотреть следующие числа в троичной системе счисления: 223, 1223, 2223 и перевести их в десятичную систему счисления:

5. Сколько единиц в двоичной записи десятичного числа 513?

1) 5 2) 2 3) 3 4) 4

Решение: 513=512+1 => 512=2 9 = 10000000002 => 513= 10000000002 +1=10000000012

6. Сколько значащих нулей в двоичной записи числа 254?

1) 1 2) 2 3) 4 4) 8

Решение: 254=255 — 1 => 255=2 8 -1=111111112 – 1=111111102

7. Для хранения целого числа со знаком используется один байт. Сколько единиц содержит внутреннее представление числа (-78)?

1) 3 2) 4 3) 5 4) 6

1) переводим число 78 в двоичную систему счисления:

78 = 64 + 8 + 4 + 2 = 2 6 + 2 3 + 2 2 + 2 1 = 10011102

2) по условию число занимает в памяти 1 байт = 8 бит, поэтому нужно представить число с помощью 8 разрядов, причем старший разряд — знаковый

3) в прямом коде число будет представлено в виде:

4) делаем инверсию битов (заменяем везде, кроме знакового разряда, 0 на 1 и 1 на 0) и получим число в обратном коде:

5) добавляем к результату единицу и получим число в дополнительном коде:

6) в записи этого числа 4 единицы

8. Запись числа 6710 в системе счисления с основанием N оканчивается на 1 и содержит 4 цифры. Чему равно основание этой системы счисления N?

Остаток равен 1. Следовательно, и второе условие выполнено, поэтому троичная система подходит. Основание троичной системы равно 3.

Решение 2: Так как запись в системе счисления с основанием N заканчивается на 1, то остаток от деления числа 67 на N равен 1. Таким образом можно записать, что при некотором целом :

Из последнего выражения видно, что N (основание системы счисления) является делителем числа 66. Делителями числа 66 являются следующие натуральные числа: 2, 3,6, 11, 22, 33, 66.

Но нам известно, что запись числа содержит 4 цифры, то есть

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

Видно, что из этого списка только для числа N = 3 выполняется условие . Таким образом, ответ – 3. Проверим это, переведя число 67 в троичную систему: 6710 = 21113

9. Все 5-буквенные слова, составленные из букв А, О, У, записаны в алфавитном порядке. Вот начало списка:

Запишите слово, которое стоит на 240-м месте от начала списка.

Решение: Из списка видно, что используются только символы: «А», «О», «У». Пусть «А»=0, «О»=1, «У»=2.

Список после замены станет таким:

Видно, что это числа, идущие по порядку от нуля в троичной системе. В десятичной системе счисления список бы был таким: 0, 1, 2, 3.

Нам нужно найти, какое число будет стоять на 240 месте. Т.к. список чисел начинается с нуля, следовательно, нам нужно перевести число 239 в троичную систему счисления. Получим число: 222123. Переведем обратно в символы: УУУОУ.
Ответ: УУУОУ

10. В таблице ниже представлена часть кодовой таблицы ASCII:

Символ A B Q a b
Десятичный код
Шестнадцатеричный код

Каков шестнадцатеричный код символа “q”?

Решение: Q-A=81-65=16 => q-a=16 => q-97=16 => q=97+16=113 => 11310 =7116

11. Решите уравнение .
Ответ запишите в шестеричной системе счисления. Основание системы счисления указывать не нужно.

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

2) из уравнения получаем

3) переводим 15 в шестеричную систему счисления:

12. Запись десятичного числа в системах счисления с основаниями 3 и 5 в обоих случаях имеет последней цифрой 0. Какое минимальное натуральное десятичное число удовлетворяет этому требованию?

Решение: если запись числа в системе счисления с основанием N заканчивается на 0, то это число делится на N нацело, поэтому в данной задаче требуется найти наименьшее натуральное число, которое делится одновременно на 3 и на 5, то есть это число15.

13. Укажите, сколько всего раз встречается цифра 2 в записи чисел 10, 11, 12, …, 17 в системе счисления с основанием 5.

Решение (вариант 1):

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Определение четности числа в Python

Картинка к уроку

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

Оператор вычисления остатка от деления

В языке программирования Python, также как и в других языках программирования, есть команда — оператор (%), который вычисляет остаток от деления на число. Приведем примеры:

4 % 2 >>>0 5 % 2 >>>1 20 % 10 >>>0 25 % 10 >>>5

При делении числа 4 на 2 — остаток 0. При делении числа 5 на 2 — остаток 1. При делении числа 20 на 10 — остаток 0. При делении числа 25 на 10 — остаток 5.

Определения четности числа с помощью оператора остатка от деления

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

a = 5 if a % 2 == 0: print('Четное число') else: print('Нечентное число') >>> Нечетное число

В начале присваиваем переменной a число, четность которого хотим проверить. Далее пишем условие: если остаток деления переменной a на 2 равно 0, то вывести на экран «Четное число», в противном случае вывести «Нечетное число».

При запуске написанного кода, мы увидим «Нечетное» число.

Написание функции для определения четности числа

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

def even_or_odd(a): if a % 2 == 0: print('Четное число') else: print('Нечентное число') even_or_odd(10) >>> Четное число even_or_odd(11) >>> Нечетное число

Разберем написанный код. В первой строке мы объявляем новую функцию. Назовем её even_or_odd. Функция на входе будет получать одно число. Далее она проверяет это число на остаток от деления на 2 и выводит на печать «Четное число» или «Нечетное число». Условие, которое написано в функции мы рассмотрели уже ранее.

Как видим, определить четность числа — это довольно простая задача, которая быстро решается с помощью оператора остатка от деления (%).

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

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