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

  • Автор темы typak
  • Дата начала
T

typak

Гость
#1
есть программка для перевода из десятичной системы в шестнадцатеричную чисел от 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;  
}
 

Whatka

Well-Known Member
09.10.2011
428
4
#2
есть несколько способов
но суть похожа: цифры числа или символы в массива потом выводишь из массив
 
T

typak

Гость
#3
есть несколько способов
но суть похожа: цифры числа или символы в массива потом выводишь из массив
Этот способ я знаю но я пака массивы не проходил .
(массивы будут через главу а это упражнение уже есть)
 
R

rrrFer

Гость
#4
Чуть поправил:
Код:
#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;  
}
 
T

typak

Гость
#5
А понял формируем строку новое значение и прибавляем существующее
((+) наверно операция конкатенация)