Как сравнивать двоичные числа
Перейти к содержимому

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

Сравнить числа, выраженные в различных системах счисления: 1101 2 и D 16, 0,11111 2 и 0,22 8, 35,63 8 и 16С 16

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

11012 = 1* 2 3 + 1 * 2 2 + 0 * 2 1 + 1 * 2 0 = 8 + 4 + 1 = 13.

D16 = 13 * 8 0 = 13.

0.111112 = 1 * 2 -1 + 1 * 2 -2 + 1 * 2 -3 + 1 * 2 -4 + 1 * 2 -5 = 1/2 + 1/4 +1/8 +1/16 +1/32.

и 0.228 = 2 * 8 -1 + 2 * 8 -2 = 2/8 + 2/64 = 1/4 + 1/32.

35.638 = 3 * 8 1 + 5 * 8 0 + 6 * 8 -1 + 3 * 8 -2 = 3 * 8 + 5 + 6/8 + 3/64 = 29 51/64

16С16 = 1 * 16 2 + 6 * 16 1 + 12 * 16 0 = 256 + 96 + 12 = 364.

Сравнение чисел записанных в двоичной восьмеричной и шестнадцатеричной системах счисления

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

Двоичной системой счисления называется
позиционная система счисления с основанием 2
Двоичной системой счисления люди начали пользоваться
очень давно. Древние племена Австралии и островов
Полинезии использовали эту систему в быту. Так,
полинезийцы передавали необходимую информацию,
выполняя два вида ударов по барабану: звонкий и глухой.
Это было примитивное представление двоичной системы
счисления.
• Для кодирования информации в компьютере вместо
привычной десятичной системы счисления используется
двоичная система счисления.
• Для записи чисел в ней использовали только две цифры: 0 и 1
• Для обозначения системы счисления, в которой
представляется число, используют нижний индекс,
указывающий основание системы. Например, 110112 число в двоичной системе счисления.
2

3.

• Цифры в двоичном числе являются
коэффициентами его представления в виде
суммы степеней с основанием 2,
например:
1012=1⋅22+0⋅21+1⋅20.
• В десятичной системе счисления это
число будет выглядеть так:
1012=4+0+1=5.
Для перевода целого десятичного числа в двоичную
систему счисления нужно последовательно
выполнять деление данного числа и получаемых
целых частных на 2 до тех пор, пока не получим
частное, равное нулю. Исходное число в двоичной
системе счисления составляется последовательной
записью полученных остатков, начиная с
последнего.
3

4.

Пример:
Переведём десятичное число 13 в двоичную систему
счисления. Рассмотренную выше последовательность
действий (алгоритм перевода) можно изобразить так:
Получили 1310=11012.
Пример:
Если десятичное число достаточно большое, то более
удобен следующий способ записи рассмотренного выше
алгоритма:
224
112
56
28
14
7
3
1
0
0
0
0
0
1
1
1
22410=111000002.
4

5.

Восьмеричной системой счисления называется
позиционная система счисления с основанием 8.
Для записи чисел в восьмеричной системе счисления используются цифры: 0, 1, 2, 3, 4, 5, 6, 7.
• Для перевода целого восьмеричного числа в десятичную
систему счисления следует перейти к его развёрнутой
записи и вычислить значение получившегося
выражения.
• Для перевода целого десятичного числа в восьмеричную
систему счисления следует последовательно
выполнять деление данного числа и получаемых целых
частных на 8 до тех пор, пока не получим частное,
равное нулю. Исходное число в восьмеричной системе
счисления составляется последовательной записью
полученных остатков, начиная с последнего.
5

6.

Пример:
Переведём восьмеричное число 154368 в
десятичную систему счисления.
154368=1⋅84+5⋅83+4⋅82+3⋅81+6⋅80=694210
Пример:
Переведём десятичное число 94 в восьмеричную
систему счисления.
9410=1368
6

7.

Шестнадцатеричной системой счисления называется
позиционная система счисления с основанием 16.
Для записи чисел в шестнадцатеричной системе счисления
используются цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 и латинские
буквы A, B, C, D, E, F.
Буквы A, B, C, D, E, F имеют
значения 1010, 1110, 1210, 1310, 1410, 1510.
• Для перевода шестнадцатеричного числа в
десятичное необходимо это число
представить в виде суммы произведений
степеней основания шестнадцатеричной
системы счисления на соответствующие
цифры в разрядах шестнадцатеричного
числа.
7

8.

Для перевода целого десятичного числа
в шестнадцатеричную систему счисления следует
последовательно выполнять деление данного числа и
получаемых целых частных на 16 до тех пор, пока не
получим частное, равное нулю. Исходное число в
системе счисления составляется последовательной
записью полученных остатков, начиная с последнего.
Пример:
Переведём шестнадцатеричное число 2A7 в
десятичное. В соответствии с вышеуказанными
правилом представим его в виде суммы степеней
с основанием 16:
2A716=2⋅162+10⋅161+7⋅160=512+160+7=679.
Пример
Переведём десятичное число 158 в
шестнадцатеричную систему счисления.
15810=9E16.
8

9.

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

10.

Отличия двоичной, десятеричной и шестнадцатеричной
систем счисления:
• Основаниями этих систем счисления являются
соответственно числа 10, 2, 8, 16. При записи чисел в
десятичной системе используются цифры от 0 до 9
• В двоичной системе любое число записывается в
виде последовательности 0 и 1
• В восьмеричной системе для записи чисел
используются цифры от 0 до 7
• В шестнадцатеричной системе числа можно
записывать 16-ю символами — цифрами от 0 до 9 и
латинскими буквами от А до F

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

Сравнение чисел в различных системах счисления.

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

Переведём все числа в десятичную систему счисления:

Таким образом, наименьшим среди этих трёх чисел является число 53.

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

Переведём все числа в десятичную систему счисления:

Таким образом, наименьшим среди этих трёх чисел является число 70.

Переведите число 100110111 из дво­ич­ной системы счис­ле­ния в десятичную систему счисления.

1001101112 = 1 · 2 8 + 1 · 2 5 + 1 · 2 4 + 1 · 2 2 + 1 · 2 1 + 1 · 2 0 = 256 + 32 + 16 + 4 + 2 + 1 = 311.

Переведите число 11001 из дво­ич­ной си­сте­мы счис­ле­ния в де­ся­тич­ную си­сте­му счисления.

Представим число 11001 в виде суммы сте­пе­ней двой­ки с соответствующими коэффициентами: 16 + 8 + 1 = 25.

Переведите число 135 из де­ся­тич­ной си­сте­мы счис­ле­ния в дво­ич­ную си­сте­му счисления. Сколь­ко еди­ниц со­дер­жит по­лу­чен­ное число? В ответе ука­жи­те одно число — количество единиц.

Представим число 135 в виде суммы сте­пе­ней двойки: 135 = 128 + 4 + 2 + 1. Те­перь переведём каж­дое из сла­га­е­мых в дво­ич­ную си­сте­му счис­ле­ния и сло­жим результаты: 128 = 1000 0000; 4 = 100, 2 = 10, 1 = 1. Следовательно, 13510 = 1000 01112.

Задание 6.

Переведите число А2 из шест­на­дца­те­рич­ной си­сте­мы счис­ле­ния в десятичную си­сте­му счисления.

Представим число A2 в виде суммы сте­пе­ней числа шест­на­дцать с соответствующими множителями: A216 = 10 · 16 + 2 · 1 = 162.

Ниже можно скачать файл с задачами для тренировки:

Сравнить два длинных двоичных числа

9.2 Урок №34. Системы счисления с основаниями 2, 8, 16
Помогите написать код, потому-что мой код не проходит 4-ый тест.
Напишите программу, которая запрашивает две строки, представляющие собой двоичные числа, и выводит в первой строке большее из них, а во второй строке — меньшее. Числа подаются на вход без ведущих нулей. Длина чисел — не более 1000 разрядов.
Sample Input 1:

1001
1101

Sample Output 1:

1101
1001

Sample Input 2:

100
11

Sample Output 2:

100
11

Sample Input 3:

1
101010111

Sample Output 3:

101010111
1

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

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

Программа, которая вычитает два длинных числа
Оба числа находятся в массиве. примерно 100 разрядные. То есть вычитание столбиком.

Сложить два двоичных числа по модулю 2
Здравствуйте. Нужен код сложения двух двоичных чисел по модулю 2. Нужно сложить два числа так.

Сравнить два числа
2. Дано два числа. Если первое число больше другого, то вывести Yes, иначе — поменять местами.

718 / 421 / 205
Регистрация: 19.12.2016
Сообщений: 1,674

ЦитатаСообщение от mikatilar Посмотреть сообщение

мой код не проходит
Код в студию.

Эксперт С++

13322 / 10626 / 6350
Регистрация: 18.12.2011
Сообщений: 28,375

Лучший ответ

Сообщение было отмечено mikatilar как решение

Решение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
#include #include using namespace std; int main() { string s1,s2; cin>>s1>>s2; cin.get(); string r1=s1,r2=s2; if(s1.size()>s2.size()) { for(size_t i=0;is1.size()-s2.size();i++) r2=string("0")+r2; }else { for(size_t i=0;is2.size()-s1.size();i++) r1=string("0")+r1; } if(r1>r2) { cout; cout; }else { cout; cout; } cin.get(); return 0; }

Заблокирован

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
bool cmpstr(string sa, string sb) { if (sa.size()  sb.size()) return false; if (sa.size() > sb.size()) return true; for (int i = 0; i  (int)sa.size(); i++) if (sa[i] > sb[i]) return true; else if (sa[i]  sb[i]) return false; return true; } int main() { string sa,sb; getline(cin,sa); getline(cin,sb); if(cmpstr(sa,sb)) { cout; cout; } else { cout; cout; } system("pause"); return 0; }

Эксперт С++

13322 / 10626 / 6350
Регистрация: 18.12.2011
Сообщений: 28,375
RahatLukum, Вашу функцию можно сократить, используя operator>= для string

1 2 3 4 5 6
bool cmpstr(string sa, string sb) { if (sa.size()  sb.size()) return false; if (sa.size() > sb.size()) return true; return sa >= sb; }

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Сравнить два числа
Составить программу для сравнения двух n-значных чисел (n > 20). Учитывать знак числа. #include.

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

Сравнить два числа, введенных пользователем
Написать программу, которая сравнивает два введенных с клавиатуры числа. Программа должна указать.

Сравнить два числа, вывести большее
Добрый день изучаю с++, дошел до оператора if. Задание такое — сравнить два числа и вывести.

Длинная арифметика. Сравнить два числа
Составить программу для сравнения двух n-значных чисел (n > 20). Учитывать знак числа.

Сравнить два числа содержащих по 10 знаков
Даны два числа 10 знаков каждое.Необходимо определить большее из них.

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

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