文档章节

二进制数的插入

r
 ranjiewen
发布于 2016/11/03 23:48
字数 296
阅读 4
收藏 0

     位操作,掌握一些清零,置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 {
public:
    int binInsert(int n, int m, int j, int i) {
        // write code here
        ////保证n的j到i位均为0,且m的二进制位数小于等于i-j+1
        //return n | (m << j);

        ////取m的每一位,和n的对应位相与
        //int k = 0;
        //while (m!=0)
        //{
        //    int bit = m & 1;
        //    if (bit)
        //    {
        //        n |= 1 << (k + j);//为1,这一位也要为1,所以或
        //    }
        //    else
        //    {
        //        n &= ~(1 << (k + j));
        //    }
        //    k++;
        //    m >>= 1;
        //}

        //清零的方式  //定义掩码
        int mask = ~(((1 << (i - j + 1)) - 1) << j);  //111->111000->000111;对后面的没有影响
        n &= mask;  //i~j位置为0
        n |= (m << j);

        return n;
    }
};

 

本文转载自:http://www.cnblogs.com/ranjiewen/p/5661303.html

r
粉丝 1
博文 203
码字总数 28
作品 0
武汉
程序员
私信 提问
给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数

/** * 功能:给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数。 * (一个略大一个略小。) / 三种方法: 方法一:蛮力法 方法二:位操作法 [java] view plain co...

一贱书生
2016/11/19
3
0
哈希表与应用

一、哈希表 哈希表是一种数据结构,它需要配合哈希函数使用,用于建立索引,便于快速查找。 哈希表的实现一般来说就是一个定长的存储空间,每个位置存储一个对象。如果我们假设定长为N,则可...

不死的达芬奇
2016/12/21
28
0
《Java编程思想》第四版读书笔记 第三章

3.1 本节作者为了简化System.out.println操作,引入了自己写的一个Print类,里面的静态方法print()内部就是调用了System.out.println()。 在使用Print类时运用了静态import。这个1.5添加的新...

一万
2016/05/02
95
0
Java 位运算

一 Java 位运算 1.表示方法:   在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。   (1)正数的最高位为0,其余各位代表数值...

wf王帆
2016/07/17
26
0
LeetCode算法题-Add Binary(Java实现)

这是悦乐书的第157次更新,第159篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第16题(顺位题号是67)。给定两个二进制字符串,返回它们的总和(也是二进制字符串)。输入字...

小川94
2018/10/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

枚举 创建/获取key,name,list

创建枚举 public enum MessageTypeEnum { // 类型:0.一般消息,1.公告消息,2交易消息,3.活动消息,4.其他消息 type_general("一般消息", "0"), type_ann("公告消息", "1")......

龘游戏人生龘
31分钟前
1
0
Linus 本尊来了!为什么 KubeCon 越来越火?

阿里妹导读: 从200人的小会议到3500 多位云原生和开源领域工程师齐聚一堂的大会,KubeCon 只用了四年,昨天,在KubeCon China 2019 上阿里巴巴宣布开源 OpenKruise,今天,Linus 本尊竟然现...

阿里云云栖社区
今天
4
0
五小时构建云原生电商平台 | KubeCon SOFAStack Workshop 详解

本文根据 KubeCon China 2019 同场活动 SOFAStack Cloud Native Workshop 内容整理, 文末包含文档、PPT 地址,欢迎试用和提出建议。 2019 年 6 月 25 日,在 KubeCon China 2019,全球知名开...

SOFAStack
今天
6
0
跨平台开发框架DevExtreme v19.1.4正式发布|附下载

DevExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动、Web开发框架,可以直接在Visual Studio集成开发环境,构建iOS,Android,Tizen和Windows Phone 8应用程序。D...

FILA6666
今天
2
0
数据库链接断开 Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

报错信息如下: Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 97,130 mill......

为了美好的明天
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部