Welcome to Westonci.ca, your one-stop destination for finding answers to all your questions. Join our expert community now! Connect with a community of experts ready to provide precise solutions to your questions quickly and accurately. Join our Q&A platform to connect with experts dedicated to providing accurate answers to your questions in various fields.
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;
}
Thank you for your visit. We're dedicated to helping you find the information you need, whenever you need it. Thank you for your visit. We're dedicated to helping you find the information you need, whenever you need it. Westonci.ca is here to provide the answers you seek. Return often for more expert solutions.