написать программу на C++! Строка символов. Реализовать операции:
сравнение строк (операция = =);
удаления из строки указанного символа (операция -);
переворота строки (операция ~).
Кроме того, членом класса сделать также функцию с именем strset() для
удаления из первой строки всех символов, встречающихся во второй строке.
Делим изначальное число на 2 и по остаткам получаем 111001011100101
Т.к. изначальное число отрицательное *-29413*, поставим в начале нашего выше получившемуся числу единицу, которую больше не трогаем. (Если изначальное число со знаком +, то в начале пишется 0)
1)Прямой код
Получается 1111001011100101
2)Обратный код
Изменяем все числа (Кроме самой левой единицы)
Получается 1000110100011010
3)Дополнительный код
К Обратному коду прибавляем единицу
Получается 1000110100011011
Нужное тебе число 1000110100011011
Ну вроде бы так :)
Обратим внимание, что 9=3², 27=3³. Это дает возможность произвести перевод, пользуясь троичной системой счисления, как промежуточной.
При записи в троичной системе счисления каждая девятиричная цифра кодируется двумя троичными, а двадцатисемиричная - тремя.
Составим табличку перехода от девятиричной системы к троичной
0⇒00, 1⇒01, 2⇒02, 3⇒10, 4⇒11, 5⇒12, 6⇒20, 7⇒21, 8⇒22.
И просто делаем подмену цифр.
537218687454,427878₉ =
12 10 21 02 01 22 20 22 21 11 12 11, 11 02 21 22 21 22 =
121021020122202221111211,110221222122₃ =
121 021 020 122 202 221 111 211,110 221 222 122₃
Перегруппировка нам понадобилась, чтобы четко выделить тройки разрядов для последующего перевода. Теперь нам нужна еще одна табличка - для перевода из троичной системы в двадцатисемиричную.
000⇒0, 001⇒1, 002⇒2, 010⇒3, 011⇒4, 012⇒5, 020⇒6, 021⇒7, 022⇒8,
100⇒9 101⇒A, 102⇒B, 110⇒C, 111⇒D, 112⇒E, 120⇒F, 121⇒G, 122⇒H,
200⇒I, 201⇒J, 202⇒K, 210⇒L, 211⇒M, 212⇒N, 220⇒O, 221⇒P, 222⇒Q
121 021 020 122 202 221 111 211,110 221 222 122₃ =
G 7 6 H K P D M, C P Q H₂₇ = G76HKPDM,CPQH₂₇
ответ: 537218687454,427878₉ = G76HKPDM,CPQH₂₇
2) С шестнадцатиричной и восьмеричной системами счисления все так же, но проще, потому что в школах учат двоичные коды чисел от 0 до 15.
16=2⁴, 8=2³. Мы переходим от шестнадцатиричной системы счисления к двоичной, заменяя каждую цифру четырьмя битами (тетрадой), а потом разбиваем результат на тройки (триады) и каждую триаду заменяем восьмеричной цифрой.
CFB5EE,D349C₁₆ =
1100 1111 1011 0101 1110 1110, 1101 0011 0100 1001 1100₂ =
110011111011010111101110,11010011010010011100₂ =
110 011 111 011 010 111 101 110,110 100 110 100 100 111 000₂ =
6 3 7 3 2 7 5 6, 6 4 6 4 4 7 0₈ =
63732756,646447₈
ответ: CFB5EE,D349C₁₆ = 63732756,646447₈