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

Минимальное количество байт, которое займёт отрицательное число - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вводится последовательность из N целых чисел. Найти максимальное совершенное число в последовательности, если таких несколько, вывести их количество ( http://www.cyberforum.ru/cpp-beginners/thread869687.html
Вводится последовательность из N целых чисел. Найти максимальное совершенное число в последовательности, если таких несколько, вывести их количество (функцией оформить проверку числа: результатом функции будет 1 – число совершенное, 0 - нет). (Совершенное число – это целое число, у которого сумма всех делителей, меньших его самого, равна этому числу). Помогите доработать пожалуйста...
C++ Разработать классы и создать объекты для вероятностного анализа входного массива чисел Разработать классы и создать объекты для вероятностного анализа входного массива чисел (нахождение моментов 1-го и 2-го порядков и других статист. характеристик) http://www.cyberforum.ru/cpp-beginners/thread869669.html
C++ Брутфорс (brute force)
Мне нужно получить все возможные комбинации 4 чисел. Сумма чисел должна быть ровна 1. Тоесть нужно следующее: 0 0 0 1 0 0 0,1 0,9 0 0 0,2 0,8 0 0 0,3 0,7 0 0 0,4 0,6 .... Помогите пожалуйста.
Динамический список, беглый указатель C++
Здравствуйте, помогите решить следующую проблему: в задании сказано создать двусвязный динамический список и произвести с ним некоторые действия. Список создан, заполнен, но не могу в функцию передать указатель на конец списка. Если указатель на начало передан, то на конец не получается, так как след его теряется после функции объявления и заполнения списка. #include <iostream> #include...
C++ Составить программу, моделирующую заполнение гибкого магнитного диска http://www.cyberforum.ru/cpp-beginners/thread869643.html
Составить программу, моделирующую заполнение гибкого магнитного диска. Общий объем памяти на диске 360 Кбайт. Файлы имеют произвольную длину от 18 байт до 32 Кбайт. В процессе работы файлы либо записываются на диск, либо удаляются с него. В начале работы файлы записываются подряд друг за другом. После удаления файла на диске образуется свободный участок памяти, и вновь записываемый файл либо...
C++ Алгоритмы на графах может кто может подсказать: как работать со списком рёбер для реализации алгоритмов для поиска расстояний в графе? подробнее

Показать сообщение отдельно
SDmaN
54 / 51 / 2
Регистрация: 22.07.2011
Сообщений: 436

Минимальное количество байт, которое займёт отрицательное число - C++

18.05.2013, 21:45. Просмотров 436. Ответов 1
Метки (Все метки)

Нужно узнать минимальное количество байт, которое займёт число. То есть в int у нас может быть число и 256 (00000001 00000000), которое займёт 2 байта, и 255 (00000000 11111111), которое может занять всего 1 байт. Нужно вычислить это минимальное количество.

Написал функцию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int BytesCount(int Number)
{
    int NumberOfBytes = 0;
 
    do
    {
        Number = Number >> 8;
        NumberOfBytes++;
    } while(Number != 0);
 
    return NumberOfBytes;
}
Для 255 и 256 она возвращает правильное число байт, но вот для -255 (11111111 00000001), после двукратного сдвига на 8 бит вправо, получается число -1. Почему?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru