C 程序以查找给定数字的二进制补码
方法 1 - 将给定的二进制数转换为补码,然后加 1。
方法 2 - 从最低有效位 (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\n",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\n",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\n");
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\n",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\n",num, two);
return 0;
}
执行上述程序时,会产生以下结果 -
Enter the binary number1000010
Ones' complement of binary number 1000010 is 0111101
Two's complement of binary number 1000010 is 0111110
以上是 C 程序以查找给定数字的二进制补码 的全部内容, 来源链接: utcz.com/z/317414.html