八位图 16位图_了解位图

八位图 16位图

几周前,我和Alistair正在研究用于对节点附加到Neo4j数据库中的标签进行建模的代码。

这种工作方式是将32个节点ID的块表示为每个标签的32位位图 ,其中1表示1表示节点具有标签,0表示没有标签。

例如,假设我们有节点ID 0-31,其中0是最高位,而31是最低位。 如果只有节点0具有标签,则将其表示为以下值:

java> int bitmap = 1 << 31;
int bitmap = -2147483648

如果我们想象32位彼此相邻放置,它将看起来像这样 :

2014-01-12_15-45-16

java> 0X80000000;
Integer res16 = -2147483648

我们要做的下一件事是确定节点是否应用了标签。 我们可以通过使用按位AND来实现。

例如,要检查是否设置了最高位,我们将编写以下代码:

java> bitmap & (1 << 31);
Integer res10 = -2147483648

正如我们所想象的那样。 现在让我们检查一下一些我们尚未设置的位:

java> bitmap & (1 << 0);
Integer res11 = 0java> bitmap & (1 << 1);
Integer res12 = 0java> bitmap & (1 << 30);
Integer res13 = 0

我们可能要执行的另一项操作是在现有位图上设置另一位,我们可以对其使用按位“或”运算。

按位“或”表示如果一个值设置了该位或两个值都设置了,则将置位。

让我们设置第二高的位。 并可视化该计算:

2014-01-12_15-45-161

如果我们评估,我们期望设置两个最高位:

java> bitmap |= (1 << 30);
Integer res14 = -1073741824

现在,如果我们可视化位图,我们将看到确实如此:

2014-01-12_17-16-21

java> 0XC0000000;
Integer res15 = -1073741824

我们要做的下一个操作是取消设置已经设置好的位,可以使用按位异或。

异或表示只有在计算中包含(0和1)或(1和0)的组合时,该位才会保持设置状态。 如果有两个1或2 0,那么它将被取消设置。

让我们取消设置第二高的位,以便仅设置最高位。

如果我们形象化地进行以下计算:

2014-01-12_17-33-21

并且如果我们评估返回到原始位图:

java> bitmap ^= (1 << 30);
Integer res2 = -2147483648

我使用Java REPL评估了本文中的代码示例,并且本文非常清楚地解释了移位运算符 。

这篇文章中描述的Neo4j版本的位图位于github上的BitmapFormat类中。

参考:在Mark Needham博客博客中,从我们的JCG合作伙伴 Mark Needham 了解位图 。

翻译自: https://www.javacodegeeks.com/2014/01/learning-about-bitmaps.html

八位图 16位图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

调制深度,峰均值功率比,脉冲整形等因素对于调制损耗的影响...

我们知道光发射机中一个非常重要的参数是发射功率。如果光发射机处于无源光网络&#xff08;PON&#xff09;&#xff0c;没有后续放大器的情况&#xff0c;发射功率很大程度上决定了发射机可以传输的距离 &#xff08;功率预算&#xff0c;power budget&#xff09;&#xff1…

移动流量转赠给好友_私域流量的五大认知误区

各大品牌主对于私域流量存在的认知误区 &#xff0c;你是否也这样认为&#xff1f;目前看起来&#xff0c;私域流量好像只要前期投入&#xff0c;后期就可以为自身带来源源不断的流量&#xff0c;但是私域流量真的像看起来那么美吗&#xff1f;其实不是的&#xff0c;我们对于私…

MATLAB 将不同长度的一维数组存入二维数组

将多个不同长度的一维数组存入二维数组时&#xff0c;需要将所有一维数组的长度转为相同长度&#xff0c;可以采用在数组后边补零的方式实现。 如果a是行向量&#xff0c;M是你要的最终向量的长度&#xff0c;用 a[a , zeros(1,M-length(a))]; 如果a是列向量&#xff0c;改成 …

使用Spring Boot 2.0的Spring Security:保护端点

到目前为止&#xff0c;在以前的文章中&#xff0c;我们已经使用默认的spring安全配置对端点和控制器进行了安全保护。 当Spring Security在类路径上时&#xff0c;默认情况下自动配置会保护所有端点。 当涉及到复杂的应用程序时&#xff0c;我们需要每个端点使用不同的安全策…

【渝粤题库】广东开放大学 文化活动策划与组织 形成性考核

选择题 题目&#xff1a; 资源的取得或者是天然形成的&#xff0c;或者是人的劳动与自然环境共同作用而形成的。而资源资产的形成可以有什么渠道&#xff1f; 题目&#xff1a; 资源的稀缺性决定了任何一个社会都必须通过一定的方式把有限的资源合理分配到社会的各个领域中去&…

MATLAB 显示输出数据的三种方式

1. 改变数据格式 当数据重复再命令行窗口时&#xff0c;整数以整形形式显示&#xff0c;其他值将以默认格式显示。MATLAB的默认格式是精确到小数点后4位。如果一个数太大或太小&#xff0c;那么将会以科学记数法的形式显示。比如&#xff1a; >> x100.11x 100.1100>…

发言稿开场白范文_发言稿开场白

发言稿开场白导语&#xff1a;无论做领导&#xff0c;还是做下属;无论做教师&#xff0c;还是搞销售;无论教育子女&#xff0c;还是向公众演讲;3分钟内你抓住了听众的心&#xff0c;一切事情就都会变得简单。1、你是否羡慕过陶渊明的人生?是啊&#xff0c;他归隐田园&#xff…

Matlab 语句

1. 显示输出数据的三种方式 1.1 改变数据格式 当数据重复再命令行窗口时&#xff0c;整数以整形形式显示&#xff0c;其他值将以默认格式显示。MATLAB的默认格式是精确到小数点后4位。如果一个数太大或太小&#xff0c;那么将会以科学记数法的形式显示。比如&#xff1a; &g…

.net2.0 orm_Hibernate 4.3 ORM工具

.net2.0 ormHibernate最近发布了Hibernate ORM 4.3的最终版本&#xff0c;它是一个基于Java的ORM框架&#xff0c;它还支持存储过程和实体图。 发行了ORM Tool Hibernate 4.3&#xff0c;实现了JPA 2.1规范&#xff0c;引入了该发行版的主要功能&#xff0c;简而言之&#xff1…

千寻和省cors精度对比_使用中海达RTK实战演示千寻cors账号对比省cors网络,验证其测量效果究竟如何...

原标题&#xff1a;使用中海达RTK实战演示千寻cors账号对比省cors网络&#xff0c;验证其测量效果究竟如何最近看到有很多的网友都在问千寻cors账号的定位服务怎么样&#xff1f;还在考虑要不要从省cors网络转用千寻cors网络&#xff1f;其实&#xff0c;作为用户来说&#xff…

【渝粤题库】广东开放大学 物业财税管理基础 形成性考核 (2)

选择题 题目&#xff1a;企业将资金以购买债券、提供借款或商业信用等形式出借给其他单位&#xff0c;这是一种&#xff08; &#xff09;的财务关系。 题目&#xff1a;&#xff08; &#xff09;是指买卖双方成交后&#xff0c;在双方约定的未来某一特定的时日才交割的交易市…

【渝粤题库】广东开放大学 综合英语1 形成性考核 (2)

选择题 题目&#xff1a; There is no ________, so we will begin with the next project. 选择一项&#xff1a; 题目&#xff1a; If a company wants to see its products ________, it should do some world market report first. 选择一项&#xff1a; 题目&#xff…

Probability, Matringale,Markov Chain, MCMC

一、基本知识 1. 条件概率 条件概率是指在某件事情已经发生的前提下&#xff0c;另一件事情在此基础上发生的概率&#xff0c;举例来说P(A丨B)表示B发生的基础上&#xff0c;A也发生的概率&#xff0c;基本公式为&#xff1a; 2. 条件期望 在上述概率下的期望我们称之为条…

html 按钮 按下 状态_科普|你身边的手动火灾报警按钮,您了解吗?

手动火灾报警按钮手动火灾报警按钮&#xff0c;是火灾报警系统中的一个设备类型&#xff0c;当建筑发生火灾时在火灾探测器没有探测到火灾的时候人员手动按下手动火灾报警按钮&#xff0c;报告火灾信号&#xff0c;向建筑所属消防控制室报火警。正常情况下当手动火灾报警按钮报…

Apache Ant 1.9.13和1.10.5发布–支持Java 11单文件源程序

我们刚刚发布了Apache Ant的1.9.13和1.10.5版本 。 与往常一样&#xff0c;您可以从Ant项目下载页面下载它。 这两个版本主要是错误修复版本。 但是&#xff0c;1.10.5版对“ java”任务进行了新的增强。 正如我之前写的那样 &#xff0c;Java 11引入了一项新功能&#xff0c;…

【渝粤题库】广东开放大学 质量管理 形成性考核 (2)

选择题 题目&#xff1a;王鑫老师有什么怪癖&#xff1f; 题目&#xff1a;如果觉得某次讨论成绩不理想&#xff0c;也可以像单元测验那样再重新回答一次&#xff0c;老师会重新给分的。 题目&#xff1a;以下关于课程勋章的说法&#xff0c;哪些是“正确”的&#xff1f; 题目…

ubuntu按方向键出现abcd_Ubuntu Vi方向键[A [B [C [D问题解决

在ubuntu下&#xff0c; vi 在编辑模式下使用方向键时没有移动光标&#xff0c;而是在出现 [A [B [C [D 之类的字母乱码。编辑错误的话&#xff0c;就连退格键(Backspace键)都使用不了&#xff0c;只能用Delete来删除。方法一&#xff1a;编辑/etc/vim/vimrc.tiny文件root权限下…

【渝粤题库】陕西师范大学100200 信息技术教育应用 作业 (专升本、高起专、高起本)

一、选择题 1、人类信息技术发展的第一次飞跃发生在&#xff1a; A&#xff0e;古代社会 B&#xff0e;近代社会 C&#xff0e; 现代社会 D&#xff0e; 当代社会 2、计算机I/O设备指的是计算机系统的: A&#xff0e;控制设备; B&#xff0e;存储设备 C&#xff0e;输入/输出设…

Spring依赖注入–字段vs设置器vs构造函数注入

欢迎使用Spring Dependency Injection –字段&#xff0c;设置器&#xff0c;构造函数注入教程。 了解场注入 &#xff0c; 二传手注入和构造函数注入之间的区别。 借助代码示例&#xff0c;我们将看到使用每个示例的好处以及为什么选择一个而不是另一个。 有关Spring依赖注入…

马尔可夫蒙特卡罗 MCMC 原理及经典实现

我们在做机器学习、深度学习或自然语言处理等项目时&#xff0c;经常采用什么方法采样呢&#xff1f;大家马上会想到吉布斯 Gibbs 采样&#xff0c;今天我们来分享一种比较实用的采样方法&#xff1a;马尔可夫蒙特卡罗方法&#xff0c;吉布斯采样是其中的一种。 Markov chain …