二進制插入(白菜題)

題目描述

有兩個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
         i       j

10000000000

00001001100

利用位運算

public class BinInsert {
    public int binInsert(int n, int m, int j, int i) {
        // write code here
        return (m << j) | n;
    }
}

測試地址:http://www.nowcoder.com/practice/30c1674ad5694b3f8f0bc2de6f005490?tpId=8&tqId=11019&rp=1&ru=/ta/cracking-the-coding-interview&qru=/ta/cracking-the-coding-interview/question-ranking
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章