二進位制數的插入

2021-07-22 21:53:58 字數 606 閱讀 7759

位操作,掌握一些清零,置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...