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

Работа с битами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Время ядра виндовса http://www.cyberforum.ru/cpp-beginners/thread949620.html
Ребята всем привет) у меня вопрос по загрузки ядер, на тачке 12 ядер) прилагаю фотку загрузки ядер, меня волнует первое что работают ядра не на максимум и второе то что виндовс откусывает своим ядром кучу "рабочей мощности". Я думаю что фишка этого гемороя в том что я выделяю 3 кучи по 300000 элементов, работаю с ними и удаляю. В почти подобных работах я выделяю 3 кучи но по 5000 элементов, время...
C++ устройство на rs-232 народ, подскажите с чего начать и что загуглить, так то бы создать какое нибудь представление о том как написать прогу, которая сформирует массив чисел, которые в свою очередб придут на вход ком-порта, от устройства которое еще не сделано, но это не суть, что его еще нет, главное разобраться с ком-портом , а точнее с его программированием. посоветуйте книгу или статью для новичка, по с++... http://www.cyberforum.ru/cpp-beginners/thread949602.html
C++ А возможно ли?
Перейду сразу к вопросу. Вопрос: Возможно ли реализовать клиент-серверное приложение, и допустим я с сервера отправляю что-то клиенту и чтоб оно моментально в программе прям сразу без обновлений, изменилось. Как пример возьму, добавило в Memo1 линию. И чтоб клиент сразу же это обработал ну и добавил!
Сумма двух цыфр не работает C++
#include<stdio.h> #include<conio.h> int main() { int a,b, y; printf("Vvedite chislo a:"); scanf("%d",&a); printf("Vvedite chislo b:");
C++ Сумма двух цыфр http://www.cyberforum.ru/cpp-beginners/thread949592.html
только учусь) #include<stdio.h> #include<conio.h> int main() { int a,b, y;
C++ Начинающему копировать слова из текстового файла ≈∏омогите начинающему хелп копировать слова из текстового файла. Создать файл с текстом:Printf " 1.pig 2.mouse 3.reptile "c:\book.txt Одну информацию под числом вывести на экран например pig-лучше без цифры и если можно как сделать через запятую и 3. Синхронизация-т.е. подробнее

Показать сообщение отдельно
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
07.09.2013, 11:09     Работа с битами
Цитата Сообщение от TamaGOch Посмотреть сообщение
char tmp = 3; /*0000 0011*/
правильно
Цитата Сообщение от TamaGOch Посмотреть сообщение
tmp = -3; /*1000 0011*/
неправильно
прочитай что такое дополнительный код
грубо говоря это код который дополняет до 0
-3+3=0
в двоичном виде
1111 1101(-3)
0000 0011(3)
=
0000 0000

подойдем по другому
0-3=-3
0000 0000(0)
-
0000 0011(3)
=
1111 1101(-3)

практически делается так инвертируются все биты и добавляется 1
0000 0011(3)
1111 1100(инверсия)
1111 1101(-3)

1111 1101(-3)
0000 0010(инверсия)
0000 0011(3)
Цитата Сообщение от TamaGOch Посмотреть сообщение
tmp = tmp ^ 1; /*0000 0010*/
правильно
Цитата Сообщение от TamaGOch Посмотреть сообщение
tmp = tmp ^ 1; /*1000 0100*/
неправильно
почитай что такое "исключающие или"(XOR)
вот таблица истинности
0^0=0
0^1=1
1^0=1
1^1=0
другими словами если биты равны то результат 0
если не равны то результат 1

используется часто для инверсии битов
например
0000 0011^0000 0001=0000 0010
0000 0010^0000 0001=0000 0011
или при шифровании( простейшем)
если число обработать XOR ключом, а потом еще раз то получим первоначальное число

Добавлено через 3 минуты
Цитата Сообщение от TamaGOch Посмотреть сообщение
однако хочется в последней операции получить значение tmp = -2, т.е. 1000 0010
-2 это 1111 1110
открой виндовый калькулятор в режиме программиста и посмотри как представляются числа

Добавлено через 3 минуты
Цитата Сообщение от TamaGOch Посмотреть сообщение
однако хочется в последней операции получить значение tmp = -2, т.е. 1000 0010
3^1=2;
0000 0011(3)
0000 0001(1)
=
0000 0010(2)

-3^1=-4
1111 1101(-3)
0000 0001(1)
=
1111 1100(-4)
 
Текущее время: 07:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru