题目描述
有两个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 j10000000000
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

本文介绍了一个具体的位运算问题,即如何将一个32位整数m的二进制位插入到另一个32位整数n的指定位置。通过具体实例演示了如何利用左移和按位或操作实现这一目标,并提供了完整的Java代码实现。
63

被折叠的 条评论
为什么被折叠?



