Question: #include #include #include #include convert.h uint 6 4 _ t convert _ to _ base _ ten ( char number [ ] , unsigned

#include
#include
#include
#include "convert.h"
uint64_t convert_to_base_ten(char number[], unsigned int num_digits, uint8_t base){
uint64_t result =0;
for (unsigned int i =0; i num_digits; i++){
int digit_value = to_int(number[i]);
if (digit_value ==-1|| digit_value >= base){
printf("Invalid digit '%c' for base %d
", number[i], base);
return 0;
}
result = result * base + digit_value;
printf("Step %d: Current result =%" PRIu64"
", i, result);
}
return result;
}
void convert_to_base(uint64_t number, uint8_t base, char result[], unsigned int size){
size_t index = size -1;
result[index]='\0';
if (number ==0){
result[--index]='0';
}
while (number >0 && index >0){
uint8_t remainder = number % base;
result[--index]= to_char(remainder);
number /= base;
}
for (unsigned int i = index; i size; i++){
result[i - index]= result[i];
}
result[size - index]='\0';
}
uint64_t convert_bases(char number[], unsigned int size, uint8_t base, uint8_t new_base){
int a =0;
for (int i =0; i 256; i++){
if (number [i]=='\0'){
a = i;
break;
}
}
uint64_t base10_value = convert_to_base_ten(number, a, base);
char result[256];
convert_to_base(base10_value, new_base, result, 256);
int index =255;
int result_index =0;
while (result[result_index]!='\0'){
number[index - result_index]= result[result_index];
result_index++;
}
number[index - result_index]='\0';
return base10_value;
}
char to_char(int i){
if (i >=0 && i =9){
return '0'+ i;
} else if (i >=10 && i =15){
return 'A'+(i -10);
}
return '\0';
}
int to_int(char c){
if (c >='0' && c ='9'){
return c -'0';
} else if (c >='A' && c ='F'){
return c -'A'+10;
}
return -1;
}
Im not sure why the values in the result column are coming out backwards. SO if its supposed to be 123 it comes out as 321.
#include #include #include #include "convert.h "

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!