// En funktion för att omvandla decimal till binär representation av ett tal
int decToBinary(int n)
{
int binärtNum[32];
int i =0;
medan (n> 0)
{
binärtNum[i] =n % 2;
n =n/2;
i++;
}
för (int j =i - 1; j>=0; j--)
printf("%d", binärtNum[j]);
printf("\n");
}
// En funktion för att konvertera binär till dess 2-komplement
int binaryTo2sComplement(int binaryNum[], int n)
{
int i;
för (i =0; i
binärtNum[i] =!binärNum[i];
för (i =n - 1; i>=0; i--)
{
if (binärtNum[i] ==0)
binärtNum[i] =1;
annan
bryta;
}
}
// Drivrutinsprogram
int main()
{
int n;
printf("Ange ett decimaltal:");
scanf("%d", &n);
decToBinary(n);
printf("Dess 2:s komplement är:");
int binärtNum[32];
int len =32;
int decToBin =decToBinary(n);
binaryTo2sComplement(binaryNum, len);
decToBinary(decToBin);
returnera 0;
}
```
Produktion:
```
Ange ett decimaltal:10
1010
Dess 2:s komplement är:0101
```