-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
1

Побитовые операции

14.09.2018, 17:25. Показов 437. Ответов 7
Метки нет (Все метки)

С помощью побитовых операций преобразовать число -78 в 15
Вот что пыталась делать, кто знает как сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int v =-78;
    int i = 1;
    v=~v;
    while (1)
    {
        if (v == 15)
            break;
        else
        v >>= 1;
    }
    cout << v;
    system("pause");
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.09.2018, 17:25
Ответы с готовыми решениями:

Побитовые операции на с++ (<< и >>)
Подскажите пожалуйста, такая задача - побитовый сдвиг на заданное количество символов сдвигает...

Побитовые операции
У меня вопрос по правильности побитовых операций в моем коде: class Extracter :public...

Побитовые операции
1-программа #include &lt;stdio.h&gt; #include &lt;windows.h&gt; int main(void) { char g; /* ??? ?????????...

Побитовые операции
Задача: битовый образ 8*8 задается при помощи 8 байт, каждый байт состоит, соответственно, из 8...

7
Модератор
Эксперт CЭксперт С++
4545 / 4187 / 766
Регистрация: 07.10.2015
Сообщений: 8,653
14.09.2018, 18:00 2
vfhbf, ассемблерная вставка подойдет?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
 
using namespace std;
 
int main()
{
    int v = -78;
    int res = 0;
    for(int i=0; i<8; i++)
    {
        __asm
        {
            shr v, 1
            jnc next
            rcl res, 1
next:
        }
    }
    cout << res;
    system("pause");
    return 0 ;
}
1
Модератор
Эксперт С++
11063 / 9123 / 5482
Регистрация: 18.12.2011
Сообщений: 24,392
14.09.2018, 18:10 3
C++
1
2
3
4
5
int v =-78;
int res=0;
res &= v;
v=res | 0x0f;
cout<<v;
Чем не преобразование, все в соответствии с условиями (исключительно побитовыми операциями)!
1
Модератор
Эксперт CЭксперт С++
4545 / 4187 / 766
Регистрация: 07.10.2015
Сообщений: 8,653
14.09.2018, 18:25 4
vfhbf, можно еще так:
C
1
v = (((v<<1)&0x04) | (v>>4)) & 0x0f;
Или так:
C
1
2
v = ~v;
v = (((v>>5)&0x02) | v ) & 0x0f;
1
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
14.09.2018, 18:33  [ТС] 5
zss, Спасибо) Если не тяжело можете объяснить?
res &= v;
v=res | 0x0f;
0
Модератор
Эксперт CЭксперт С++
4545 / 4187 / 766
Регистрация: 07.10.2015
Сообщений: 8,653
14.09.2018, 18:43 6
vfhbf, могу и я
res = 0, после res &= v так и осталось res = 0
Потом тупо втыкаем 0x0f при помощи v = res | 0x0f и вуаля!
0
Evg
Эксперт CАвтор FAQ
21204 / 8220 / 633
Регистрация: 30.03.2009
Сообщений: 22,537
Записей в блоге: 30
14.09.2018, 20:16 7
Цитата Сообщение от zss Посмотреть сообщение
Чем не преобразование, все в соответствии с условиями (исключительно побитовыми операциями)!
Ты хоть объясни человеку, что это чит. Преподаватель такое скорее всего не оценит

Добавлено через 5 минут
А вообще условие задачи слишком мутное и расплывчатое, имеющее миллион решений. Пока внятно не понять смысл задачи, нормального решения не будет

C
#include <stdio.h>
 
int main (void)
{
  int v = -78;
 
  printf ("%08x\n", (v >> 8) & 0xf);
  printf ("%08x\n", (~v & 0xf) | 0x2);
  printf ("%08x\n", (v & 0x0) | 0xf); /* вариант от zss */
}
2
Фрилансер
3687 / 2057 / 566
Регистрация: 31.05.2009
Сообщений: 6,683
14.09.2018, 22:46 8
Первое, что приходит в голову:
C
1
2
int v = -78;
int w = v ^ (-67);
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2018, 22:46

Побитовые операции
Пожалуйста, объясните как работают побитовые операторы &amp; и |. Например идет: i=03; j=01; k=i &amp;...

Побитовые операции
Помогите решить несколько задач по битовым операциям,они все малы по реализации. И объяснить...

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

Побитовые операции
Помогите пожалуйста, никак не могу справиться с этой задачкой. Выделить из числа x поле шириной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.