C语言教程
C语言控制语句
C语言函数
C语言数组
C语言指针
C语言字符串
C语言数学函数
C语言结构
C语言文件处理
C预处理器

C语言2s补码

C中的2s补码是从C中的1s补码生成的。众所周知,二进制数的1s补码是创建的。通过将位1转换为0和0转换为1;二进制数的2s补数是通过将二进制数的1s补数加1来生成的。
简而言之,可以说C中的2s补数定义为C中的2的补数之和。 C和一个。
C中的2s补码
在上图中,二进制数等于00010100,其补码是通过将位1转换为0以及将0转换为1来计算的。因此,一个补码变为11101011、计算一个补码后,我们将一个补码加1来计算两个补码,其结果为11101100。
我们创建一个2s补码程序。
#include <stdio.h>
int main()
{
   int n;  // variable declaration
   printf("Enter the number of bits do you want to enter :");
   scanf("%d",&n);
   char binary[n+1];  // binary array declaration; 
   char onescomplement[n+1]; // onescomplement array declaration 
   char twoscomplement[n+1]; // twoscomplement array declaration
   int carry=1; // variable initialization
   printf("\nEnter the binary number : ");
   scanf("%s", binary);
   printf("%s", binary);
   printf("\nThe ones complement of the binary number is :");
   
   // Finding onescomplement in C
   for(int i=0;i<n;i++)
   {
       if(binary[i]=='0')
       onescomplement[i]='1';
       else if(binary[i]=='1')
       onescomplement[i]='0';
   }
   onescomplement[n]='\0';
   printf("%s",onescomplement);
  
printf("\nThe twos complement of a binary number is : ");
// Finding twoscomplement in C
for(int i=n-1; i>=0; i--)
    {
        if(onescomplement[i] == '1' && carry == 1)
        {
            twoscomplement[i] = '0';
        }
        else if(onescomplement[i] == '0' && carry == 1)
        {
            twoscomplement[i] = '1';
            carry = 0;
        }
        else
        {
            twoscomplement[i] = onescomplement[i];
        }
    }
twoscomplement[n]='\0';
printf("%s",twoscomplement);
return 0;
}
输出
2s补语在C

上述程序的分析

首先,我们输入位数,并将其存储在' n '变量中。 输入位数后,我们声明字符数组,即 char binary [n + 1] ,其中保存了二进制数。 " n "是我们在上一步中输入的位数;它基本上定义了数组的大小。 我们声明了另外两个数组,即 onescomplement [n + 1] 和 twoscomplement [n + 1]。。 onescomplement [n + 1] 数组保留二进制数的补数,而 twoscomplement [n + 1] 数组保留二进制数的补数。 初始化 carry 变量,并为此变量分配1个值。 声明后,我们输入二进制数。 现在,我们只需计算一个二进制数的补数即可。为此,我们创建一个遍历二进制数组 for(int i = 0; i < n; i ++)的循环。在for循环中,检查条件是该位是1还是0。如果该位是1,则 onescomplement [i]=0 else onescomplement [i]=1 。这样,就产生了一个二进制数的补码。 计算完一个补码后,我们生成一个二进制数的2s补码。为此,我们创建一个循环,该循环从最后一个元素迭代到开始元素。在for循环中,我们具有三个条件: 如果onescomplement [i]的位为1,进位的值为1,则将0放入twocomplement [i]。 如果onescomplement [i]的位为0,进位的值为1,则将1放入twoscomplement [i],将0放入进位。 如果以上两个条件为假,则onescomplement [i]等于twoscomplement [i]。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4