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

Логические вычисления - C++

Восстановить пароль Регистрация
 
964758-ge
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 12
08.02.2014, 10:46     Логические вычисления #1
Arg1 = 0x1234
Arg2 = 0xff
~nArg1 = 0xffffedcb
~nArg2 = 0xffffff00
nArg1 ^ nArg2 = 0x12cb

(~nArg1 = 0xffffedcb )0x1234 в двоичной системе = 1001000110100, потом вычислил с помощью оператора ~ и перевёл в 16-ую систему счисления, в итоге получил ответ dcb, а в книге ~nArg1 = 0xffffedcb. Как это получилось ? И если можно, пожалуйста, помогите и с другими примерами приведёнными мною. Большое спасибо заранее.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2014, 10:46     Логические вычисления
Посмотрите здесь:

C++ Логические операторы
C++ Логические операции.
Логические выражения C++
C++ Логические операторы
C++ Логические выражения
Логические операции C++
Логические операции C++
C++ Логические операции (Логические &&, ||) (Побитовые &, |)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1787
Регистрация: 18.12.2011
Сообщений: 14,196
Завершенные тесты: 1
08.02.2014, 11:16     Логические вычисления #2
Цитата Сообщение от 964758-ge Посмотреть сообщение
0x1234 в двоичной системе = 1001000110100
На самом деле для 32 разрядного слово 0x1234 в двоичной системе = 00000000000000000001001000110100,
инвертируем:1111111111111111 1110110111001011=0xffffedcb
964758-ge
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 12
08.02.2014, 12:28  [ТС]     Логические вычисления #3
32 разрядное слово 0x1234 в двоичной системе = 00000000000000000001001000110100. А как вы это перевели, помогите пожалуйста. Я читаю книгу. Сутками думал над этим. Но что-то выходило по-другому. Поясните как вы это перевели

Добавлено через 3 минуты
вы сначала перевели 1234 (32 разрядное слово) в двоичную систему, потом с помощью оператора ~ инвертировали это двоичное число, а потом это двоичное число перевели в 16-ую систему счисления и получили 1234 ? Я вас правильно понял ?

Добавлено через 6 минут
А, вы сначала число 12 перевели из 16-ой в двоичную , а потом 34 ? А с левой стороны прибавили необходимое число нулей, чтобы было бы 32 разрядное число ?

Добавлено через 27 минут
Ясно. 1234 в двоичной системе - 1001000110100 + надо прибавить с левой стороны необходимое количество нулей до 32-ух разрядного числа , а потом инвертировать и перевести в 16-ую систему и получится 1234

Добавлено через 28 минут
Последнее предложение добавленное мною неправильное. Я всё понял. Большое вам спасибо !
Yandex
Объявления
08.02.2014, 12:28     Логические вычисления
Ответ Создать тему
Опции темы

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