八位图 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位彼此相邻放置,它将看起来像这样 :
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
我们可能要执行的另一项操作是在现有位图上设置另一位,我们可以对其使用按位“或”运算。
按位“或”表示如果一个值设置了该位或两个值都设置了,则将置位。
让我们设置第二高的位。 并可视化该计算:
如果我们评估,我们期望设置两个最高位:
java> bitmap |= (1 << 30);
Integer res14 = -1073741824
现在,如果我们可视化位图,我们将看到确实如此:
java> 0XC0000000;
Integer res15 = -1073741824
我们要做的下一个操作是取消设置已经设置好的位,可以使用按位异或。
异或表示只有在计算中包含(0和1)或(1和0)的组合时,该位才会保持设置状态。 如果有两个1或2 0,那么它将被取消设置。
让我们取消设置第二高的位,以便仅设置最高位。
如果我们形象化地进行以下计算:
并且如果我们评估返回到原始位图:
java> bitmap ^= (1 << 30);
Integer res2 = -2147483648
我使用Java REPL评估了本文中的代码示例,并且本文非常清楚地解释了移位运算符 。
这篇文章中描述的Neo4j版本的位图位于github上的BitmapFormat类中。
翻译自: https://www.javacodegeeks.com/2014/01/learning-about-bitmaps.html
八位图 16位图
八位图 16位图_了解位图相关推荐
- linux下将8bit二值位图转化为1bit单色位图【C/C++】
linux下将8bit二值位图转化为1bit单色位图 bmp位图主要由文件头和信息头两部分,根据windows api下bmp结构体定义,可转化为以下linux可用的结构体(禁用了gcc/g++编译器 ...
- Android App开发之位图加工Bitmap中转换位图的像素色彩、裁剪内部区域、利用矩阵变换位图的讲解及实战(附源码和演示)
需要图片集和源码请点赞关注收藏后评论区留言~~~ 一.转换位图的像素色彩 给图片添加装饰物,只是在局部变换,如果想让图片一边保持轮廓一边改变色彩,就要深入图像的每个像素点,将这些像素点统统采取某种算法 ...
- oracle位图索引语句,oracle之位图索引
位图索引适用于低基数(low-cardinality)列,所谓低基数列就是指这个列只有很少的可取值. 位图索引的问题: 采用位图索引,一个键指向多行,可能数以百计甚至更多.如果更新一个位图索引键,那么 ...
- Android系统--输入系统(八)Reader线程_使用EventHub读取事件
Android系统--输入系统(八)Reader线程_使用EventHub读取事件 1. Reader线程工作流程 获得事件 size_t count = mEventHub->getEvent ...
- rscp胎位图_胎位图loa是什么意思
胎位图loa是什么意思更新时间:2017-12-24 核心提示: 胎位图loa是什么意思 通常,医学上称枕前位为正常胎位,胎儿背朝前胸向后,两手交叉于胸前,两腿盘曲,头俯曲,枕部最低.分娩时头部最先伸 ...
- rscp胎位图_胎位图LOA/ROA/LOP/ROP可以自己对照DD看下
胎位图LOA/ROA/LOP/ROP可以自己对照DD看下 右枕前(ROA) 左枕前(LOA) 右枕后(ROP) 左枕后(LOP) 姐妹们对照自己的DD研究研究吧 借用以前猫猫查的资料. 关于胎位; 胎 ...
- android读写位图,android - 从矢量绘图获取位图
android - 从矢量绘图获取位图 在我的应用程序中,我必须为通知设置一个大图标.LargeIcon必须是一个Bitmap,我的drawables是矢量图像(Android中的新功能,请看这个链接 ...
- MFC/VC++中怎样设置位图按钮并且位图不会覆盖文字——–位图按钮
1:第一次尝试 设置 IDC_BUTTON3按钮风格的bitmap为true 在OnInitialDilog中: CButton* cbpTest = NULL; HINSTANCE hInst ...
- Android官方开发文档Training系列课程中文版:高效显示位图之加载大位图
原文地址:http://android.xsoftlab.net/training/displaying-bitmaps/index.html 引言 学习如何使用一种常规的手段来处理及加载Bitmap ...
最新文章
- Numpy学习笔记(下篇)
- django-request对象
- 14.parfor并行循环处理
- matplotlib 一张图多个图,如何在Matplotlib中绘制同一个图上的多个函数?
- 关系型数据库的分片原则
- linx vim 文件操作 ubuntu server 软件源
- Java如何获取文件编码格式
- Hi3519A调试记录
- 区块链符号理论:符号方案和符号系统
- vue element UI 学习总结笔记(十一)_vue中打印模板设置
- 概率论复习(笔记用)
- Entry name ‘org/apache/commons/codec/language/bm/gen_approx_greeklatin.txt’ collided
- 泛函分析和他的基础概念
- go语言的类型之间的相互转化和float保留小数时的四舍五入
- 分享一个python生成ico图片程序
- layui数据表格与后台交互进行渲染
- 面试时如何回答你的缺点是什么?
- 人脸表情识别系统介绍——上篇(python实现,含UI界面及完整代码)
- ab压力测试 及结果分析
- 如何轻松画好服装设计效果图