题目描述
给定两个32位整数n和m,同时给定i和j,将m的二进制数位插入到n的二进制的第j到第i位,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1,其中二进制的位数从0开始由低到高。
eg:
输入:
1024,19,2,6
输出:
1100
以下是本篇文章正文内容,下面案例可供参考
解题思路
eg:
m = 1024 = 10000000000
n = 19 = 10011
j = 2
i = 6
10000000000
00001001100 -> 右移j
位,保证右边对齐
插入:因为题目说 保证n的第j到第i位均为零 所以插入就或操作或相加操作
代码如下
import java.util.*;
public class Main {
public int binInsert(int n, int m, int j, int i) {
m <<= j;//m右移j位,插到j-i中间
return m + n;//相加
//return m | n;//或操作
}
}