對於一個數的每個置位的位元,切換 C++ 的另一個位元


在這個問題中,我們拿到了兩個整數。我們的任務是建立一個 c 程式來進行操作,對於一個數的每個置位的位元,切換另一個位元。

下面,我們透過一個例子來理解這個問題。

Input: 3 7
Output: 4
Binary of 3: 011
Binary of 3: 111

數字的第一個和第二個位元被翻轉,它變為 100,即 4。

解決方法

解決該問題的辦法是執行兩個數的異或操作。無論何時第一個位元為 1,結果的相應位元都將使用異或運算切換。

示例

一個程式來說明我們解決方案的工作原理

#include <bits/stdc++.h>
using namespace std;

int main(){
   int a = 3, b = 7;
   cout<<"The numbers are "<<a<<" & "<<b<<endl;
   cout<<"The result of flipping bits is "<<(a ^ b);
   return 0;
}

輸出

The numbers are 3 & 7
The result of flipping bits is 4

更新於: 2022 年 2 月 1 日

226 次瀏覽

職業啟動

透過完成課程獲得認證

開始學習
廣告