二进制插入
2016-06-22 14:19
253 查看
题目描述
有两个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
1024:100000000 00
19 : 10011
可以看到上面得出,只要我们用1011与1024的第j位到第i位做或运算(|)即可。
我们想到可以让10011左移j位就可以正常做运算了。
10000000000
00001001100
-------------------
10001001100 ---->1100(十进制)
代码如下:
public int binInsert(int n, int m, int j, int i) {
// write code here
m = m << j;
return n | m;
}
相关文章推荐
- React-Native学习指南
- 为 VR 优化 UE 4 渲染器
- HDU 3788 ZOJ问题
- 基于DSP的实时图像处理系统
- Rabbitmq for openstack
- Android开发一些实用的类、方法及接口(新手向)
- JSON 之FastJson解析
- LeetCode Add Binary(二进制加法)
- FPGA入门的基础知识
- MVC 区域内默认控制器不能访问(Multiple types were found that match the controller named ‘Index')
- Lnmp中nginx经常出现502错误解决方法
- memcpy函数详解
- 从平庸到卓越!5个帮你快速提高设计稿质感的实用方法
- oracle数据库system密码忘记怎么办?
- 营销案例,只保留一天,马上要删
- Java代码实现设置系统时间
- nginx安装及配置
- IOException while loading persisted sessions: java.io.EOFException异常的解决办法
- html禁止Input文本输入缓存的两种方法
- android 文件缓存 DiskLruCache