Программа преобразует введенное пользователем число десятичной системы счисления в шестнадцатеричную.
Решение:
Возможно, что мой способ решения задачи покажется громоздким. Поэтому буду рад альтернативным вариантам, оставленным в комментариях.
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 34 35 36 37 38 39 40 |
#include <math.h>
#include «stdafx.h» #include <iostream> using namespace std; int main() {setlocale(LC_ALL,«Rus»); char dec_str[255], n; int hex=0, i=0, ost, perev, chislo=0; cout<<» Введите число в десятичной СС >> «; cin.getline(dec_str, 255); n=strlen(dec_str); while (n>0) //переводим данные в int { n—; perev=dec_str[i]; if ((perev>=48) && (perev<=58)) chislo+=(perev—48)*(pow(10, float(n))); else exit(0); i++; } i=0; while (chislo!=0) { ost=chislo%16; chislo=chislo/16; switch(ost) { case 10: n=‘A’; break; case 11: n=‘B’; break; case 12: n=‘C’; break; case 13: n=‘D’; break; case 14: n=‘E’; break; case 15: n=‘F’; break; } if ((ost>=0) && (ost<=9)) {perev=ost+48; dec_str[i]=perev;} else dec_str[i]=n; i++; }dec_str[i]=‘\0‘; n=strlen(dec_str); cout<<endl<<«Переведено в шестнадцатеричную СС >>»; for (i=n; i>=0; i—) cout<<dec_str[i]; system(«pause>>void»); return 0; } |