Как Поменять Вывод Справа На Лево

Тема в разделе "Общие вопросы по С и С++", создана пользователем typak, 2 май 2012.

  1. typak

    typak Гость

    есть программка для перевода из десятичной системы в шестнадцатеричную чисел от 1 до 256 но она выводит на экран не так как надо
    например число 256 выводит 001, а должна вывести 100
    Можно ли как то поменять вывод с права на лево ???

    Вот код:
    Код (C++):
    //перевод из десятичной в двоичную, восмеричную, и шестнадцатиричные системы
    #include <iostream>
    using std::cout;
    using std::endl;

    #include <string>
    using std::string;

    int main()
    {

    cout <<endl<<endl;
    //шестнадцатиричная система счисления
    int number;
    int number1;
    string b;
    for(int i=1;i<=256;i++)
    {
    number1=i;//целое
    cout <<number1<<" - ";
    while(number1!=0)
    {
    number=number1%16;//остаток
    // cout <<"целое "<<number1<<"остаток "<<number<<" "<<endl;
    switch(number)
    {
    case 10:
    {

    b="A";
    number=-1;
    break;
    }
    case 11:
    b="B";
    number=-1;
    break;
    case 12:
    b="C";
    number=-1;
    break;
    case 13:
    b="D";
    number=-1;
    break;
    case 14:
    b="E";
    number=-1;
    break;
    case 15:
    b="F";
    number=-1;
    break;  
    }
    if(number!=-1)
    cout <<number;
    else
    cout <<b;
    number1/=16;//целое
    }
    cout <<endl;
    }

    return 0;  
    }
     
  2. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    есть несколько способов
    но суть похожа: цифры числа или символы в массива потом выводишь из массив
     
  3. typak

    typak Гость

    Этот способ я знаю но я пака массивы не проходил .
    (массивы будут через главу а это упражнение уже есть)
     
  4. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Чуть поправил:
    Код (Text):
    #include <iostream>
    using std::cout;
    using std::endl;

    #include <string>
    using std::string;

    int main() {
    string b;

    int number, t;

    for( int i = 1; i <= 256; i++ ) {
    cout << i << " - ";
    number = i;

    b = "";

    do {
    t = number % 16;

    b = (char) ( t < 10 ? t + '0' : t + 'A' - 10 ) + b;

    number /= 16;
    } while( number );
    cout << b << endl;
    }

    return 0;  
    }
     
  5. typak

    typak Гость

    А понял формируем строку новое значение и прибавляем существующее
    ((+) наверно операция конкатенация)
     
  6. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    правильно поняли.
     
Загрузка...

Поделиться этой страницей