Доброго времени суток. Есть задача, на побитовые операции. Условия задачи:
Я со своими знаниями, смог только сделать первое условие (Вычислить R = А & B и проверить переводом в десятичную СЧ.), и то не полностью. Ниже, представлен мой код. Как можно в нем реализовать сразу все условия задачи с переводом в десятичную СЧ? Заранее спасибо.
#include "stdafx.h"
#include <locale.h>
#include <conio.h>
int main()
{
setlocale(0,"");
int A, B;
printf("\nEnter A: A = ");
scanf_s("%d",&A);
printf("\nEnter B: B = ");
scanf_s("%d",&B);
printf("\nA & B = %d",A&B);
getch();
return 0;
}
#include <bitset>
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
cout << "Битовые операции на С++" << endl;
cout << "-----------------------" << endl << endl;
cout << "Введите число А:" << endl;
// Ввод числа А
int a;
cin >> a;
cout << endl;
// Ввод числа B
int b;
cout << "Введите число B:" << endl;
cin >> b;
cout << endl;
// Вычисление R пункт 1
int r = a & b;
cout << "R = A & B = " << r << endl;
cout << "A = " << bitset<16>(a) << endl;
cout << "B = " << bitset<16>(b) << endl;
cout << "R = " << bitset<16>(r) << endl;
cout << endl;
// Вычисление R пункт 2
r = a | b;
cout << "R = A | B = " << r << endl;
cout << "A = " << bitset<16>(a) << endl;
cout << "B = " << bitset<16>(b) << endl;
cout << "R = " << bitset<16>(r) << endl;
cout << endl;
// Вычисление R и Q пункт 3
r = a ^ b;
cout << "R = A ^ B = " << r << endl;
cout << "A = " << bitset<16>(a) << endl;
cout << "B = " << bitset<16>(b) << endl;
cout << "R = " << bitset<16>(r) << endl;
cout << endl;
int q = r ^ b;
cout << "Q = R ^ B = " << q << endl;
cout << "R = " << bitset<16>(r) << endl;
cout << "B = " << bitset<16>(b) << endl;
cout << "Q = " << bitset<16>(q) << endl;
cout << endl;
// 4. Вычислить R = ~ A, Q = ~ R.
r = ~a;
cout << "R = ~A = " << r << endl;
cout << "A = " << bitset<16>(a) << endl;
cout << "R = " << bitset<16>(r) << endl;
cout << endl;
q = ~r;
cout << "Q = ~R = " << q << endl;
cout << "R = " << bitset<16>(r) << endl;
cout << "Q = " << bitset<16>(q) << endl;
cout << endl;
//5. Вычислить A >> c, B >> d и проверить делением.
// Ввод числа c
int c;
cout << "Введите число c:" << endl;
do {
cin >> c;
} while (c < 0);
cout << endl;
// Ввод числа d
int d;
cout << "Введите число d:" << endl;
do {
cin >> d;
} while (d < 0);
cout << endl;
//6 .Вычислить A << d, B << c и проверить умножением.
int e1 = a << d;
cout << "e = A << d = " << e1 << endl;
cout << "A = " << bitset<16>(a) << endl;
cout << "d = " << d << endl;
cout << "e = " << bitset<16>(e1) << endl;
cout << endl;
int e2 = b << c;
cout << "e = B << c = " << e2 << endl;
cout << "B = " << bitset<16>(b) << endl;
cout << "c = " << c << endl;
cout << "e = " << bitset<16>(e2) << endl;
cout << endl;
cout << "Проверка умножением:" << endl;
int f = a;
for (int i = 0; i<d; i++) {
f *= 2;
}
int g = b;
for (int i = 0; i<c; i++) {
g *= 2;
}
cout << "e1 сдвиг = " << bitset<16>(e1) << endl;
cout << "e1 умножение = " << bitset<16>(f) << endl;
cout << "e2 сдвиг = " << bitset<16>(e2) << endl;
cout << "e2 умножение = " << bitset<16>(g) << endl;
return 0;
}
// OUTPUT:
Битовые операции на С++
-----------------------
Введите число А:
3
Введите число B:
4
R = A & B = 0
A = 0000000000000011
B = 0000000000000100
R = 0000000000000000
R = A | B = 7
A = 0000000000000011
B = 0000000000000100
R = 0000000000000111
R = A ^ B = 7
A = 0000000000000011
B = 0000000000000100
R = 0000000000000111
Q = R ^ B = 3
R = 0000000000000111
B = 0000000000000100
Q = 0000000000000011
R = ~A = -4
A = 0000000000000011
R = 1111111111111100
Q = ~R = 3
R = 1111111111111100
Q = 0000000000000011
Введите число c:
2
Введите число d:
3
e = A << d = 24
A = 0000000000000011
d = 3
e = 0000000000011000
e = B << c = 16
B = 0000000000000100
c = 2
e = 0000000000010000
Проверка умножением:
e1 сдвиг = 0000000000011000
e1 умножение = 0000000000011000
e2 сдвиг = 0000000000010000
e2 умножение = 0000000000010000
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
На сколько я знаю, папка "vs" предназначена для хранения пользовательских настроек проэкта
Нужно извлечь число из класса у элемента для дальнейшей работы с нимКласс извлек, но почему число то не извлекается, почему parseInt не выполняет...
Задача: нужно с помощью JS получить список всех фоновых запросов (ajax) особенно которые генерируют плагиныКак с помощью js/jquery это сделать?
На данный вопрос уже ответили: