Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.74
Хажи
-4 / 1 / 0
Регистрация: 09.08.2011
Сообщений: 27
#1

Изменить знак числа типа int на противоположный, используя битовые операции. - C++

15.03.2012, 22:21. Просмотров 5495. Ответов 8
Метки нет (Все метки)

помогите
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2012, 22:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изменить знак числа типа int на противоположный, используя битовые операции. (C++):

Определить знак числа, используя битовые операции - C++
Помогите пожалуйста Определить знак числа, используя битовые операции

Как представлять двоичные числа в обратном и дополнительном коде, используя битовые операции? - C++
#include <iostream> #include <string> #include <algorithm> using namespace std; int main() { int n; cout << "Enter...

Битовые операции - перемещение бит для unsigned int - C++
Помогите разобраться, задание: Создайте функцию, которая перемещает биты для unsigned int на 30 бит в право, причем выходящие при...

Битовые операции с разными типа данных - C++
Здравствуйте. В голове возник такой странный вопрос, а мб и не странный. Возможны ли битовые операции с разными типа данных, например int...

Перевод из двоичной системы счисления в шестнадцатиричную, используя битовые операции - C++
Формулировка задачи: "Разработать программу, которая переводит число из двоичной системы счисления (из внутреннего представления) в...

Используя битовые операции, вывести на экран восьмиричное представление беззнакового короткогоцелого - C++
Знаю такая задача уже была на форуме в таком виде, но возможно ли её написать проще на уровне начинающего? #include "stdafx.h" #include...

8
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.03.2012, 22:29 #2
~x + 1
0
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,849
15.03.2012, 22:46 #3
Jupiter, чтобы уж совсем "используя битовые операции", лучше ~x | 1
1
Хажи
-4 / 1 / 0
Регистрация: 09.08.2011
Сообщений: 27
15.03.2012, 23:20  [ТС] #4
не так не получается , а так ~x+1 это уже не битовая
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.03.2012, 23:24 #5
Цитата Сообщение от Хажи Посмотреть сообщение
не так не получается , а так ~x+1 это уже не битовая
http://liveworkspace.org/code/71c9be3fca5745c6ab110ededf95ae3e
0
Хажи
-4 / 1 / 0
Регистрация: 09.08.2011
Сообщений: 27
15.03.2012, 23:24  [ТС] #6
для не четных получается так ~x | 1
0
kazak
15.03.2012, 23:43
  #7

Не по теме:

Цитата Сообщение от Хажи Посмотреть сообщение
для не четных получается так ~x | 1
Потому что для нечетных младший разряд равен нулю.

0
3BEPb_TyTa
18 / 18 / 1
Регистрация: 18.05.2010
Сообщений: 83
16.03.2012, 02:08 #8
у меня как-то так получилось
C++
1
2
3
4
5
6
7
8
9
10
11
12
    cin >> x;
 
    x=~x;
 
        // Цикл для нечётных чисел
    while(x & n){
        x = x & (~n); // Заменяем на ноль n-ый бит
        n = n << 1; // Сдвигаем маску
    }
    x = x | n; 
 
    cout << x << endl;
Добавлено через 1 час 20 минут
забыл

C++
1
    int x, n = 1;
0
Шляпа
5 / 1 / 0
Регистрация: 18.11.2012
Сообщений: 64
28.12.2012, 22:22 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream> //Стандартная библиотека входа/выхода
#include <conio.h>         //Подключил чтобы исп. оператор getch
 
using namespace std;    //глобальное присвоение std(т.е. чтобы каждый раз не писать перед cin,cout)
 
int main(){                  //_________________________начало функции_________________________
    int x;                 //целое x
     cin >> x;           //Вводите x
    x=~x+1;                //меняем знак используя поразрядное отрицание(битовую операцию)
    cout << x << endl;   //_________________________конец  функции_________________________
    _getch();           //Чтобы не вылетела
       return 0; 
}
0
28.12.2012, 22:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2012, 22:22
Привет! Вот еще темы с ответами:

Можно ли из числа типа double получить 2 числа типа int? - C++
Если можно, то напишите пожайлуста название функции или способ.

Битовые операции, битовые поля. - C++
Здравствуйте! Еслть 4 диапазона чисел: 0-100, 0-100, 0-6000, 0-3. Сделать в виде битовых операций. Записать в unsigned int. Использовать...

В массив типа double записываю целые числа (типа int), но ошибка не вылазиет! - C++
Вот программулька: #include &lt;iostream&gt; using namespace std; #include &lt;conio.h&gt; int main() { double arr={1,2,3,4,5}; ...

Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность - C++
Программа должна перемножать 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность(помогите написать хотя...


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

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

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