Как сделать перевод числа с 10-й системы счисления в 16-ю - C (СИ)
Формулировка задачи:
Сколько тут перечитал так и не нашол и не понял как сделать перевод с 10ичной системы счисления в 16. Задали мне задание. Написать функцию которая будит принимать 2 аргумента, где 1ый аргумент это любое десятичное число, а 2й аргумент СС в которую нужно преоброзить и вывести на экран. До 8 СС я понял как делать, а вот дальше вообще 0. Немогу понять как сделать чтоб оно выдавало мне буквы.
Вот исходник того что сделал. Кстати делал на Visual Studio 08. Буду рад любой вашей помощи.
#include<iostream> #include<math.h> using namespace std; int CC10_2(int arg, int cc) { int i, dl[32]; for (i = 0; i <= 31; i++) dl[i] = 0; for (i = 0; arg != 0; i++) { dl[i] =arg % cc; arg =arg / cc; } for (i = 31; i >= 0; i--) cout << dl[i]; cout << endl; return 0; } void main () { CC10_2(19,2); }
Решение задачи: «Как сделать перевод числа с 10-й системы счисления в 16-ю»
textual
Листинг программы
#include<stdio.h> #define n 60 void perevod(char ms1[n],int ss,double num,int t,char znak)//ss-система счисления в которую необх перевести { //num-число которое нужно перевести //t-точность //znak-знак числа char ms[n]; //char ms1[n]; int k1=n/2,k2=n/2+1,num1,i; num1=num; num=num-num1; while(num1>=ss) { i=num1%ss; num1/=ss; ms[k1--]=i>9?i-10+'a':i+'0'; } ms[k1--]=num1>9?i-10+'a':num1+'0'; ms[k1]=znak; ms[k2++]='.'; while(num!=0 && k2-n/2-1<=t) { num*=ss; i=num; num-=i; ms[k2++]=i>9?i-10+'a':i+'0'; } int j=0; for (i=k1;i<k2;i++) { ms1[j]=ms[i]; j++; } ms1[j]='\0'; } void vivod(char ms[n]) { printf("\n"); for(int i=0;ms[i]!='\0';i++) { printf("%c",ms[i]); } } void main() { int ss,k1=n/2,k2=n/2+1,t; double num; char ms[n]; char znak='+'; printf("vvedite isxodnoe chislo\n"); scanf("%lf",&num); if (num<0) {znak='-';num*=-1;} printf("vvedite novoe osnovanie\n"); scanf("%d",&ss); printf("vvedite tochnost\n"); scanf("%d",&t); perevod(ms,ss,num,t,znak); vivod(ms); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д