Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.74
Хажи
-4 / 1 / 0
Регистрация: 09.08.2011
Сообщений: 27
15.03.2012, 22:21     Изменить знак числа типа int на противоположный, используя битовые операции. #1
помогите
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2012, 22:21     Изменить знак числа типа int на противоположный, используя битовые операции.
Посмотрите здесь:

Битовые операции, битовые поля. C++
C++ Битовые операции - перемещение бит для unsigned int
C++ В массив типа double записываю целые числа (типа int), но ошибка не вылазиет!
Используя битовые операции, вывести на экран восьмиричное представление беззнакового короткогоцелого C++
Можно ли из числа типа double получить 2 числа типа int? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.03.2012, 22:29     Изменить знак числа типа int на противоположный, используя битовые операции. #2
~x + 1
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
15.03.2012, 22:46     Изменить знак числа типа int на противоположный, используя битовые операции. #3
Jupiter, чтобы уж совсем "используя битовые операции", лучше ~x | 1
Хажи
-4 / 1 / 0
Регистрация: 09.08.2011
Сообщений: 27
15.03.2012, 23:20  [ТС]     Изменить знак числа типа int на противоположный, используя битовые операции. #4
не так не получается , а так ~x+1 это уже не битовая
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.03.2012, 23:24     Изменить знак числа типа int на противоположный, используя битовые операции. #5
Цитата Сообщение от Хажи Посмотреть сообщение
не так не получается , а так ~x+1 это уже не битовая
http://liveworkspace.org/code/71c9be...110ededf95ae3e
Хажи
-4 / 1 / 0
Регистрация: 09.08.2011
Сообщений: 27
15.03.2012, 23:24  [ТС]     Изменить знак числа типа int на противоположный, используя битовые операции. #6
для не четных получается так ~x | 1
kazak
15.03.2012, 23:43
  #7

Не по теме:

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

3BEPb_TyTa
 Аватар для 3BEPb_TyTa
18 / 18 / 1
Регистрация: 18.05.2010
Сообщений: 83
16.03.2012, 02:08     Изменить знак числа типа int на противоположный, используя битовые операции. #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;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2012, 22:22     Изменить знак числа типа int на противоположный, используя битовые операции.
Еще ссылки по теме:

Определить знак числа, используя битовые операции C++
Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность C++
Напишите перегруженную функцию power (), которая принимает два целочисленных параметра типа int и возвращает целочисленное значение типа int C++

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

Или воспользуйтесь поиском по форуму:
Шляпа
5 / 1 / 0
Регистрация: 18.11.2012
Сообщений: 64
28.12.2012, 22:22     Изменить знак числа типа int на противоположный, используя битовые операции. #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; 
}
Yandex
Объявления
28.12.2012, 22:22     Изменить знак числа типа int на противоположный, используя битовые операции.
Ответ Создать тему
Опции темы

Текущее время: 08:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru