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

Не учитывать знаковый бит - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Конструкция с if else, но чтобы в условии были не числа, а слова http://www.cyberforum.ru/cpp-beginners/thread1067715.html
Доброе время суток! Сразу прошу прощения за "неправильную речь", написал как мог! А как мне написать, если я не хочу сравнивать числа, а хочу сравнивать слова или предложения? Например:...
C++ Программирование по юникс Добрый вечер всем ;) Почти для каждой работы требуется "знакомство/программирование под юникс" . Гуглить я гуглил но до полной осмысленности я так и не дошел. Зачем это надо? Как начать... http://www.cyberforum.ru/cpp-beginners/thread1067714.html
Переделать задачу под динамический массив C++
#pragma hdrstop #pragma argsused #include <iostream.h> #include <ctime.h> #include <cstdlib.h> #include <iomanip.h> const int n = 5; int main()
Не находит заголовочный файл thread (Visual Studion 2010) C++
Ребят помогите в чем может быть проблема?
C++ Добавить строку в файл http://www.cyberforum.ru/cpp-beginners/thread1067660.html
Не знаю как добавить в файл строку, подскажите как правильно. void CPhBook::Add(){ char str; ofstream fp; fp.open("PhBook.txt",ios::out | ios::app); fp<<str; fp.close(); }
C++ Определить дату Дата некоторого дня характеризуется тремя натуральными числами: g (год), m (порядковый номер месяца) и п (число). По заданным g, п и m определить: а) дату предыдущего дня; б) дату следующего дня.... подробнее

Показать сообщение отдельно
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
10.01.2014, 18:17
Допустим, нужно написать свою функцию получения модуля с использованием битовых операций...

Тут надо вспомнить, что отрицательные числа хранятся в дополнительном коде, поэтому просто так откинуть знаковый бит для получения модуля нельзя.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int my_abs(int x)
{
    int y = (x >> 31);
    return (x ^ y) - y;
}
 
int main()
{
    int a = -5;
    if (my_abs(a) == 5)
    {
        std::cout << "true" << std::endl;
    }
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru