位操作,掌握一些清零,置1和取每一位的技巧。
//題目描述
////
有兩個32位整數n和m,請編寫演算法將m的二進位制數字插入到n的二進位制的第j到第i位, 其中二進位制的位數從低位數到高位且以0開始。
//給定兩個數int n和int m,同時給定int j和int i,意義如題所述,請返回操作後的數,保證n的第j到第i位均為零,且m的二進位制位數小於等於i - j + 1。
//測試樣例:
//1024,19,2,6
//返回:1100
class
bininsert
//else
//
//k++;
//m >>= 1;
//}//清零的方式
//定義掩碼
int mask = ~(((1
<< (i - j + 1)) - 1) << j); //
111->111000->000111;對後面的沒有影響
n &= mask; //
i~j位置為0
n |= (m
n; }
};
C 二進位制插入
c 中的位運算 位運算是進行 優化經常會用到的操作 1 將乙個數乘以2的n次方,相當於將這個數左移n位 有兩個32位整數n和m,請編寫演算法將m的二進位制數字插入到n的二進位制的第j到第i位,其中二進位制的位數從低位數到高位且以0開始。給定兩個數int n和int m,同時給定int j和int i...
二進位制 二進位制起源
現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...
二進位制數反轉
1 使用了歸併排序的思路 最快 但是時間複雜度比歸併排序要小,每行 都相當於完成了一次歸併 include unsigned revbit unsigned x void main 2 把乙個32位整數按位反轉,即第1位轉到第32位,第2位轉到第31位,依次下去。一牛人寫的演算法如下 unsigne...