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

Цикл нахождения диапазона данных и битов - C++

Восстановить пароль Регистрация
 
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
22.09.2012, 13:21     Цикл нахождения диапазона данных и битов #1
Всё работает, вот только одного понять не могу, почему количество битов выводится 31, а не 32 ( ведь если делить 4 294 967 295 на 2, то оно будет делиться примерно 31 раз до того момента, как число станет меньше 2, а потом просто прибавляем единицу, так как число у нас нечётное). Помогите мне пожалуйста разобраться где я наврал

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
using namespace std;
 
int main()
{
    unsigned int d;
 
    //тип  unsigned int
    for(d=0; ;d--) {
        if(d>0) {
            cout << "4).unsigned int max: " << d;
            d=d+1;
            cout << " min: " << d;
 
            //подсчёт байтов
                d = d-1; //вернулись от минимума к максимому диапазона данных = 4 294 967 295
                for(i=0; d>=2 ;i++) { //счётчик i количества делений на 2
                d = d/2; // делим на 2 пока d>=2
                                i = i + 1;
                if(d<2) { // если a<2 то считаем биты по формуле ниже
                cout << " bait:" << i << '\n';
                break;
                }
 
            } //конеч подсёта байтов
 
            break;
        }
    }
 
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2012, 13:21     Цикл нахождения диапазона данных и битов
Посмотрите здесь:

C++ Обнуление битов
C++ Поля битов
Цикл вывода диапазона данных C++
Как созать цикл for для нахождения произведения элементов массива C++
Цикл: Вывести на экран все различные элементы набора данных по возрастанию C++
Цикл на проверку введённых данных C++
Программа на цикл с условием (написать программу для нахождения суммы тех членов ряда, модуль которых не менее ε) C++
C++ Вычисления заданного целочисленного выражения для данных в формате 16 битов со знаком, используя оператор IF
Re: Даны два множества М и N, состоящие из 10 целых чисел из диапазона 1.100. Из данных множеств выделить соот C++
C++ Цикл для проверки битов числа
C++ Обнуление битов
C++ Бесконечный цикл при вводе несоответствующего типа данных

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Рыжий Лис
Просто Лис
 Аватар для Рыжий Лис
214 / 169 / 46
Регистрация: 17.05.2012
Сообщений: 627
Записей в блоге: 4
22.09.2012, 14:24     Цикл нахождения диапазона данных и битов #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
int main()
{
    unsigned int d, i;
 
    //тип  unsigned int
    for(d=0; d>0 ;d--);
    d--;
            cout << "4).unsigned int max: " << d;
            d++;
            cout << " min: " << d;
            //подсчёт байтов
             d--; //вернулись от минимума к максимому диапазона данных = 4 294 967 295
 
                for(i=1; d>1 ;i++) //счётчик i количества делений на 2
                  d = d/2; // делим на 2 пока d>=2
    //конеч подсёта байтов
    cout << " bait:" << i << '\n';
    system("pause");
    return 0;
}
Yandex
Объявления
22.09.2012, 14:24     Цикл нахождения диапазона данных и битов
Ответ Создать тему
Опции темы

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