给定二进制数的补码可以通过两种方法计算,如下 -
方法 1 − 将给定的二进制数转换为补码,然后加 1。
方法 2 − 从 Least 开始设置的第一个位后面的尾随零有效位 (LSB),包括保持不变的一位,其余全部应补码。
对于给定的二进制数查找二进制补码的逻辑如下 -
for(i = SIZE - 1; i >= 0; i--){ if(one[i] == '1' && carry == 1){ two[i] = '0'; } else if(one[i] == '0' && carry == 1){ two[i] = '1'; carry = 0; } else { two[i] = one[i]; } } two[SIZE] = '\0'; printf("Two's complement of binary number %s is %s</p><p>",num, two);
从给定的二进制数中找到补码的逻辑是 −
for(i = 0; i < SIZE; i++){ if(num[i] == '0'){ one[i] = '1'; } else if(num[i] == '1'){ one[i] = '0'; } } one[SIZE] = '\0'; printf("Ones' complement of binary number %s is %s</p><p>",num, one);
以下是查找给定数字的补码的 C 程序 -
现场演示
#include<stdio.h> #include<stdlib.h> #define SIZE 8 int main(){ int i, carry = 1; char num[SIZE + 1], one[SIZE + 1], two[SIZE + 1]; printf("Enter the binary number</p><p>"); gets(num); for(i = 0; i < SIZE; i++){ if(num[i] == '0'){ one[i] = '1'; } else if(num[i] == '1'){ one[i] = '0'; } } one[SIZE] = '\0'; printf("Ones' complement of binary number %s is %s</p><p>",num, one); for(i = SIZE - 1; i >= 0; i--){ if(one[i] == '1' && carry == 1){ two[i] = '0'; } else if(one[i] == '0' && carry == 1){ two[i] = '1'; carry = 0; } else{ two[i] = one[i]; } } two[SIZE] = '\0'; printf("Two's complement of binary number %s is %s</p><p>",num, two); return 0; }
当执行上述程序时,会产生以下结果 -
Enter the binary number 1000010 Ones' complement of binary number 1000010 is 0111101 Two's complement of binary number 1000010 is 0111110
以上が数値を指定して、その 2 の補数を求める C プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。