Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка целых чисел 
:(
    Опции темы
al_lex_ey
Дата 17.12.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 8.12.2007

Репутация: нет
Всего: нет



Подскажите, пожалуйста, как в этой программе сделать так, чтобы вводимое число выводилось на экран в двоичном виде.
Код

#include <stdio.h>
#include <conio.h>
void main()
{
    int res=-1,i=0; 
    scanf("%d", &i); 
    if (i) 
    { 
        res=0;
        while ((i&1)==0)  
        {
             i>>=1;
             res++;   
        }
    }
    printf("%d\n", res);
    getch();
}

PM MAIL   Вверх
Andrey44
Дата 17.12.2007, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Посмотри ТУТ smile 

И пользуйся поиском


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
al_lex_ey
Дата 17.12.2007, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 8.12.2007

Репутация: нет
Всего: нет



А можно как-нибудь по-проще, а то я там не совсем понял?
PM MAIL   Вверх
NiJazz
Дата 17.12.2007, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: нет
Всего: 23



Код

printf( "%x", res );

PM MAIL   Вверх
al_lex_ey
Дата 17.12.2007, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 8.12.2007

Репутация: нет
Всего: нет



Это не помогает.
PM MAIL   Вверх
JackYF
Дата 17.12.2007, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Цитата(al_lex_ey @  17.12.2007,  21:07 Найти цитируемый пост)
Это не помогает. 

очень информативно  smile телепатов ещё нет, если что.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
al_lex_ey
Дата 17.12.2007, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 8.12.2007

Репутация: нет
Всего: нет



Я тут кое-что доделал, теперь программа выводит число в двоичном виде, но перевернутое. Как мне сделать нормальный вывод?
Код

#include <stdio.h>
#include <conio.h>
void main()
{
    int res=-1,i=0; 
    scanf("%d", &i); 
    if (i) 
    { 
        res=0;
        while ((i&1)==0)  
        {
             i>>=1;
             res++;   
        }
    }
    while (i!=0)
    {
        if ((i%2)==0)
            printf("0");
        else
            printf("1");
        i/=2;
    }
    printf("\n");
    printf("%d\n", res);
    getch();
}

PM MAIL   Вверх
NiJazz
Дата 18.12.2007, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: нет
Всего: 23



Ой, это в шестнадцатиричном виде. smile 
Вот как можно вывести в двоичном виде число 100:
Код

char buf[16] = { 0 };
itoa( 10, buf, 2 );

printf( "%s", buf );

PM MAIL   Вверх
Voldemar2004
  Дата 18.12.2007, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: нет
Всего: 23



Цитата(al_lex_ey @  18.12.2007,  00:53 Найти цитируемый пост)
 но перевернутое. Как мне сделать нормальный вывод?
функция strrev().

А вообще я так сделал:
Код
#include <string>
#include <iostream.h>
#include <sstream.h>

std::string DecToBin(long int Value);

//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{

cout << DecToBin(11642);

cin.get();

return 0;
}
//---------------------------------------------------------------------------

std::string DecToBin(long int Value){

int Res;
std::stringstream Bufer;

        while(Value){
        Res=Value%2;    // 1 или 0.
        Bufer << Res;   // Результат деления нацело.
        Value/=2;
        }

// Временный буфер.
std::string temp = Bufer.str().c_str();

// Развернем строку.
strrev( (char*) temp.c_str() );

return temp.c_str();

}




--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0496 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.