Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
MathHelpPlanet.com RSS-лента Математического форума

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Замена сложения и вычитания битовыми операциями C++
СообщениеДобавлено: 09 июн 2019, 19:03 
Не в сети
Начинающий
Зарегистрирован:
29 апр 2019, 16:26
Сообщений: 6
Cпасибо сказано: 2
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Добрый день. Было дано задание:
Поменять два старших бита числа с двумя младшими битами.

Реализовал я это задание таким образом, однако, как выяснилось позже, операции сложения и вычитания нужно заменить битовыми операциями. Как это реализовать и с помощью чего?

#include <iostream> 
#include <stdlib.h>
#include <time.h>
using namespace std;

int main()
{
int ch, a, b, i, c;
srand(time(NULL));
ch=rand() % 256; // случайное число от 0 до 255
cout « ch « endl;
c=128; //число для проверки битов заданого числа
for (i=0; i<8; i++)
{
if (ch & c)
{
cout « 1;
}
else
{
cout « 0;
}
c = c » 1;
}
cout « endl;
a = ch & 3; // младшие 2 бита числа
b = ch & 192; // старшие 2 бита числа
a = a « 6; // сдвигаем младшие 2 бита числа влево
b = b » 6; // сдвигаем старшие 2 бита числа вправо

/*/*Обнуление страрших 2 бита и младших 2 бита числа*/
if (ch & 128)
{
ch=ch-128;
}
if (ch & 64)
{
ch=ch-64;
}
if (ch & 2)
{
ch=ch-2;
}
if (ch & 1)
{
ch=ch-1;
}
/*запись младших битов в страшие и наоборот*/
ch=ch+a+b;
cout « ch « endl;
c=128; //число для проверки битов заданого числа
for (i=0; i<8; i++)
{
if (ch & c)
{
cout « 1;
}
else
{
cout « 0;
}
c = c » 1;
}
cout « endl;
}

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему      Страница 1 из 1 [ 1 сообщение ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Равносильность систем после сложения/вычитания

в форуме Алгебра

fingolfin

4

201

06 ноя 2015, 05:02

Задача с бинарными операциями

в форуме Дискретная математика, Теория множеств и Логика

YoungMathematician

2

99

09 июн 2019, 19:37

Ассоциативность вычитания

в форуме Линейная и Абстрактная алгебра

BadCatss

7

339

07 ноя 2016, 20:17

Формулы сложения

в форуме Тригонометрия

Francisk

5

619

16 фев 2014, 13:15

Теоремы сложения и умножения

в форуме Теория вероятностей

alinochek

1

622

19 авг 2012, 20:54

Теоремы сложения и умножения

в форуме Теория вероятностей

silent_var

8

315

15 окт 2016, 20:41

Теоремы сложения и умножения

в форуме Теория вероятностей

Dragonborn

5

175

04 окт 2018, 22:51

Решить методом сложения

в форуме Алгебра

Andrey8819

4

161

05 апр 2018, 13:04

Теоремы сложения и умножения вероятностей

в форуме Теория вероятностей

sty

5

436

27 ноя 2013, 00:27

Задача на теоремы сложения/умножения

в форуме Теория вероятностей

Alex TGM

10

857

21 янв 2013, 20:56


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2019 MathHelpPlanet.com. All rights reserved