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

Побитовые операции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определение ошибок при вводе http://www.cyberforum.ru/cpp-beginners/thread961654.html
void enter_point(vector<Point> &v) { double x, y; while(true) { cout << "Enter x and y: "; cin >> x >> y; if(cin) v.push_back(Point(x, y));
C++ с++ неверно выдаёт последние строки неправильно пишет строки в конце // ConsoleApplication61.cpp: îïðåäåëÿåò òî÷êó âõîäà äëÿ êîíñîëüíîãî ïðèëîæåíèÿ. // #include <iostream> #include <locale.h> #include <Windows.h> #include... http://www.cyberforum.ru/cpp-beginners/thread961650.html
C++ Ошибку не могу определить
вообщем ошибка странная не могу понять откуда она взялась Ошибка 6 error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup C:\Users\documents\visual studio...
Ошибка std::bad_alloc C++
Помогите. Если запускать программу с number = 6, то всё работает, а вот если запустить программу, поменяв 6 на любое другое число, то программа завершается ошибкой std::bad_alloc #include...
C++ Вывод на экран данные из текстового файла http://www.cyberforum.ru/cpp-beginners/thread961634.html
Создайте текстовый файл целых чисел (значения вводятся с клавиатуры). Проанализировав в программе созданный файл, создайте еще 2 файла: • содержащий однозначные числа и их количество, • содержащий...
C++ Сравнить скорости сходимости Сравнить скорости сходимости для 2ух уравнений Помогите :) подробнее

Показать сообщение отдельно
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 853
Записей в блоге: 1
29.09.2013, 22:37  [ТС]
Цитата Сообщение от Brain_Dead Посмотреть сообщение
По поводу функции FitsBits.
Two's complement - это дополнительный код. Способ представления отрицательных чисел.
Статья о нём в википедии: http://ru.wikipedia.org/wiki/%D0%94%...81%D0%BB%D0%B0)

Судя по всему, нам необходимо определить, попадёт ли число x в диапазон: [- 2^n; 2^n - 1]

Решение выглядит примерно так:

C++
1
2
3
4
int FitsBits(int x, int n)
{
    return !(((~x & (x >> 31)) + (x & ~(x >> 31))) >> (n + ~0));
}
Про отрицательный ноль можно прочитать там же.
Thanks!
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru