URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6558
[ Назад ]

Исходное сообщение
"как обозначаются числа в двоичной системе счислания в С++"

Отправлено dimonna , 23-Июн-07 13:49 
Здравствуйте!
Заранее прошу прощения за чайниковский вопрос, но вот...

Подскажите плз, вот к примеру:
int i=5; //в десятичной системе счисления
int i=05; //в восьмеричной
int i=0x5; //в шестнадцатеричной

а как надо записать для двоичной системы счисления, например для 10010 ?
в некоторых источниках я встречал int i=10010b; но мой компилятор (GCC)
жутко ругается. Какой синтаксис записи должен быть?

Огромное спасибо!


Содержание

Сообщения в этом обсуждении
"как обозначаются числа в двоичной системе счислания в С++"
Отправлено nobody , 23-Июн-07 14:18 
>Здравствуйте!
>Заранее прошу прощения за чайниковский вопрос, но вот...
>
>Подскажите плз, вот к примеру:
>int i=5; //в десятичной системе счисления
>int i=05; //в восьмеричной
>int i=0x5; //в шестнадцатеричной
>
>а как надо записать для двоичной системы счисления, например для 10010 ?
>
>в некоторых источниках я встречал int i=10010b; но мой компилятор (GCC)
>жутко ругается. Какой синтаксис записи должен быть?
>
>Огромное спасибо!

Работа с двоичными числами (кроме побитовых операций) не предусмотрена стандартом языка, возможно работать только с 16, 10, и 8 системами исчисления. :)


"как обозначаются числа в двоичной системе счислания в С++"
Отправлено stolik , 24-Июн-07 00:10 
Хе, а чем 16-тиричная система в данном случае плоха. Вполне прозрачна по отношению к двоичной системе.

"как обозначаются числа в двоичной системе счислания в С++"
Отправлено NuINu , 25-Июн-07 11:02 
>Здравствуйте!
>Заранее прошу прощения за чайниковский вопрос, но вот...
>
>Подскажите плз, вот к примеру:

>жутко ругается. Какой синтаксис записи должен быть?
>
>Огромное спасибо!

а может быть просто писать в виде строки? и функцией конвертировать в инт?
int binstr2i(char *str) {
    int i;
    int len = strlen(str);
    if(len > 32) {
        return 0;
    }
    int rez = 0;
    for(i = 0; i < len; i++) {
        rez <<= 1;
        if(str[i] == '1') {
            rez += 1;
        }
    }
    return rez;
}

int i = binstr2i("0010101010");
а?