Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Ofelion
13 / 13 / 15
Регистрация: 26.01.2015
Сообщений: 203
#1

Битовая инверсия - C++

07.02.2016, 23:47. Просмотров 531. Ответов 7
Метки нет (Все метки)

Доброго времени суток!
Я что-то запутался с побитовой инверсией.
http://www.cyberforum.ru/cpp-beginners/thread1396899.html
В коде прописываю
C++
1
2
int a=5;
cout<<~a<<endl;
Это же означает, что в бинарном коде нули меняются на единицы, а единицы на нули.
5 = 00000101. Но если я произведу замену, то получится: 11111010 - калькулятор показывает, что это значение = -6 в десятичной системе счисления. А программа, код которой я написал показывает: 4294967290 и это правильно.
Подскажите, в чём я тут путаюсь? Если неправильно пользуюсь калькулятором, то как надо?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2016, 23:47
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Битовая инверсия (C++):

Битовая сортировка!
Всем привет. Нужно написать реферат по теме &quot;Битовая сортировка&quot;. Такого в...

С, битовая запись
Всем доброго времени суток, после 3 дней поиска информации решил попытать...

битовая маска
надо разработать функцию проверки правильности битовой маски. 32-х битная...

Битовая арифметика
Почему при: int myVar = 15, mask = 0x00 00 00 01; //выделил разряды...

Битовая маска
Как в шифровании битовыми перестановками применить маску?

7
zer0mail
2451 / 2085 / 216
Регистрация: 03.07.2012
Сообщений: 7,566
Записей в блоге: 1
08.02.2016, 00:39 #2
У меня показывает -6. https://ideone.com/3K42g7
0
Ofelion
13 / 13 / 15
Регистрация: 26.01.2015
Сообщений: 203
08.02.2016, 00:49  [ТС] #3
Возможно, у тебя получилось в проге -6, потому что ты использовал тип "int", а я использовал "unsigned int".
0
cyber-satyr
393 / 164 / 32
Регистрация: 10.12.2015
Сообщений: 717
08.02.2016, 01:33 #4
Цитата Сообщение от Ofelion Посмотреть сообщение
Подскажите, в чём я тут путаюсь?
Надо явное приведение к типу int.

Добавлено через 41 секунду
Цитата Сообщение от Ofelion Посмотреть сообщение
а я использовал "unsigned int"
У тебя в коде тип int.
0
Ofelion
13 / 13 / 15
Регистрация: 26.01.2015
Сообщений: 203
08.02.2016, 01:38  [ТС] #5
Упс, я ошибся, в проге у меня unsigned int стоит.

Добавлено через 54 секунды
Так а в итоге-то, почему на калькуляторе -6? Я так и не понял ((
0
zer0mail
2451 / 2085 / 216
Регистрация: 03.07.2012
Сообщений: 7,566
Записей в блоге: 1
08.02.2016, 01:40 #6
Цитата Сообщение от Ofelion Посмотреть сообщение
я использовал "unsigned int".
Цитата Сообщение от Ofelion Посмотреть сообщение
В коде прописываю
int a=5;
cout<<~a<<endl;
Сам не знаешь, что использовал? В unsigned int нет отрицательных чисел.
0
Dreamer_0x01
258 / 85 / 30
Регистрация: 29.10.2015
Сообщений: 192
08.02.2016, 01:50 #7
Лучший ответ Сообщение было отмечено Ofelion как решение

Решение

Если речь о калькуляторе, который в винде, то он показывает знаковые числа. То есть единицы в старшем бите будут означать записанное в дополнительном коде отрицательное число.
1
Ofelion
13 / 13 / 15
Регистрация: 26.01.2015
Сообщений: 203
08.02.2016, 10:07  [ТС] #8
zer0mail, я знаю, что я использовал. Написал же, что ошибся, приведя тут часть кода. Использовал "unsigned int" и знаю, что там нет отрицательных чисел. Вопрос в калькуляторе.

Добавлено через 17 секунд
Dreamer_0x01, понял теперь! Спасибо!
0
08.02.2016, 10:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2016, 10:07
Привет! Вот еще темы с решениями:

Битовая операция ->
Что делает операция -&gt; К примеру, есть структура: struct BIT{ unsigned int...

битовая маска
как использовать битовую маску? за пример можно взять выделение k-того разряда...

Битовая переменная
#include &lt;avr/io.h&gt; #include &lt;avr/pgmspace.h&gt; #include &lt;avr/delay.h&gt; ...

64-битовая строка
Необходимо реализовать структуру 64-битовой строки состоящей из двух unsigned...


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

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

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