二進位制數的 1’s 和 2’s 補碼?


二進位制數以 2 為基數表示。它只使用兩個數字,0 和 1。二進位制數中的每個數字都是一個位。

二進位制數範例:0100010111

1’s 補碼

二進位制數的一位補碼透過反轉二進位制數的各位獲得,即 0 換 1,1 換 0。

1’s Complement of 101100 = 010011

2’s 補碼

二進位制數的二位補碼透過對二進位制數的一位補碼加 1 獲得,即 一位補碼 + 1。

2’s complement of 101101 is 010011.

示例程式碼

用於求二進位制數的一位補碼和二位補碼的程式碼:-

#include <iostream>
#include<string.h>
using namespace std;
int main() {
   char binary[10] = "01001011";
   cout<<“Binary number is ”<<binary;
   //once complement....
   int length = strlen(binary);
   for(int i=0;i<length;i++) {
      if(binary[i] == '0') {
         binary[i]= '1';
      } else
         binary[i] = '0';
   }
   cout<<“One’s Complement is ”<<binary<<endl;
   // cout<<binary[length-1];
   for(int i = length-1; i>=0; i--) {
      // cout<<binary[i];
      if(binary[i] == '0') {
         binary[i] = '1';
         //cout<<binary[i];
         break;
      } else {
         binary[i] = '0';
      }
   }
   cout<<“Two’s complement is ”<<binary;
   return 0;
}

輸出

Binary number is 01001011
One’s complement is 10110100
Two’s complement is 10110101

更新於: 2019-07-30

4k+ 瀏覽

開啟您的職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.