Join the IDNLearn.com community and get your questions answered by knowledgeable individuals. Whether your question is simple or complex, our community is here to provide detailed and trustworthy answers quickly and effectively.
Sagot :
Solution :
#include [tex]${data-answer}lt;\text{stdio.h}>$[/tex]
#include [tex]${data-answer}lt;\text{string.h}>$[/tex]
#include [tex]${data-answer}lt;\text{stdlib.h}>$[/tex]
//Converts [tex]$\text{hex string}$[/tex] to binary string.
[tex]$\text{char}$[/tex] * hexadecimal[tex]$\text{To}$[/tex]Binary(char* hexdec)
{
long [tex]$\text{int i}$[/tex] = 0;
char *string = [tex]$(\text{char}^ *) \ \text{malloc}$[/tex](sizeof(char) * 9);
while (hexdec[i]) {
//Simply assign binary string for each hex char.
switch (hexdec[i]) {
[tex]$\text{case '0'}:$[/tex]
strcat(string, "0000");
break;
[tex]$\text{case '1'}:$[/tex]
strcat(string, "0001");
break;
[tex]$\text{case '2'}:$[/tex]
strcat(string, "0010");
break;
[tex]$\text{case '3'}:$[/tex]
strcat(string, "0011");
break;
[tex]$\text{case '4'}:$[/tex]
strcat(string, "0100");
break;
[tex]$\text{case '5'}:$[/tex]
strcat(string, "0101");
break;
[tex]$\text{case '6'}:$[/tex]
strcat(string, "0110");
break;
[tex]$\text{case '7'}:$[/tex]
strcat(string, "0111");
break;
[tex]$\text{case '8'}:$[/tex]
strcat(string, "1000");
break;
[tex]$\text{case '9'}:$[/tex]
strcat(string, "1001");
break;
case 'A':
case 'a':
strcat(string, "1010");
break;
case 'B':
case 'b':
strcat(string, "1011");
break;
case 'C':
case 'c':
strcat(string, "1100");
break;
case 'D':
case 'd':
strcat(string, "1101");
break;
case 'E':
case 'e':
strcat(string, "1110");
break;
case 'F':
case 'f':
strcat(string, "1111");
break;
default:
printf("\nInvalid hexadecimal digit %c",
hexdec[i]);
string="-1" ;
}
i++;
}
return string;
}
int main()
{ //Take 2 strings
char *str1 =hexadecimalToBinary("FA") ;
char *str2 =hexadecimalToBinary("12") ;
//Input 2 numbers p and n.
int p,n;
scanf("%d",&p);
scanf("%d",&n);
//keep j as length of str2
int j=strlen(str2),i;
//Now replace n digits after p of str1
for(i=0;i<n;i++){
str1[p+i]=str2[j-1-i];
}
//Now, i have used c library strtol
long ans = strtol(str1, NULL, 2);
//print result.
printf("%lx",ans);
return 0;
}
Your engagement is important to us. Keep sharing your knowledge and experiences. Let's create a learning environment that is both enjoyable and beneficial. Thank you for visiting IDNLearn.com. We’re here to provide dependable answers, so visit us again soon.