八位图 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类中。

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

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

八位图 16位图

八位图 16位图_了解位图相关推荐

  1. linux下将8bit二值位图转化为1bit单色位图【C/C++】

    linux下将8bit二值位图转化为1bit单色位图 bmp位图主要由文件头和信息头两部分,根据windows api下bmp结构体定义,可转化为以下linux可用的结构体(禁用了gcc/g++编译器 ...

  2. Android App开发之位图加工Bitmap中转换位图的像素色彩、裁剪内部区域、利用矩阵变换位图的讲解及实战(附源码和演示)

    需要图片集和源码请点赞关注收藏后评论区留言~~~ 一.转换位图的像素色彩 给图片添加装饰物,只是在局部变换,如果想让图片一边保持轮廓一边改变色彩,就要深入图像的每个像素点,将这些像素点统统采取某种算法 ...

  3. oracle位图索引语句,oracle之位图索引

    位图索引适用于低基数(low-cardinality)列,所谓低基数列就是指这个列只有很少的可取值. 位图索引的问题: 采用位图索引,一个键指向多行,可能数以百计甚至更多.如果更新一个位图索引键,那么 ...

  4. Android系统--输入系统(八)Reader线程_使用EventHub读取事件

    Android系统--输入系统(八)Reader线程_使用EventHub读取事件 1. Reader线程工作流程 获得事件 size_t count = mEventHub->getEvent ...

  5. rscp胎位图_胎位图loa是什么意思

    胎位图loa是什么意思更新时间:2017-12-24 核心提示: 胎位图loa是什么意思 通常,医学上称枕前位为正常胎位,胎儿背朝前胸向后,两手交叉于胸前,两腿盘曲,头俯曲,枕部最低.分娩时头部最先伸 ...

  6. rscp胎位图_胎位图LOA/ROA/LOP/ROP可以自己对照DD看下

    胎位图LOA/ROA/LOP/ROP可以自己对照DD看下 右枕前(ROA) 左枕前(LOA) 右枕后(ROP) 左枕后(LOP) 姐妹们对照自己的DD研究研究吧 借用以前猫猫查的资料. 关于胎位; 胎 ...

  7. android读写位图,android - 从矢量绘图获取位图

    android - 从矢量绘图获取位图 在我的应用程序中,我必须为通知设置一个大图标.LargeIcon必须是一个Bitmap,我的drawables是矢量图像(Android中的新功能,请看这个链接 ...

  8. MFC/VC++中怎样设置位图按钮并且位图不会覆盖文字——–位图按钮

    1:第一次尝试 设置    IDC_BUTTON3按钮风格的bitmap为true 在OnInitialDilog中: CButton* cbpTest = NULL; HINSTANCE hInst ...

  9. Android官方开发文档Training系列课程中文版:高效显示位图之加载大位图

    原文地址:http://android.xsoftlab.net/training/displaying-bitmaps/index.html 引言 学习如何使用一种常规的手段来处理及加载Bitmap ...

最新文章

  1. Numpy学习笔记(下篇)
  2. django-request对象
  3. 14.parfor并行循环处理
  4. matplotlib 一张图多个图,如何在Matplotlib中绘制同一个图上的多个函数?
  5. 关系型数据库的分片原则
  6. linx vim 文件操作 ubuntu server 软件源
  7. Java如何获取文件编码格式
  8. Hi3519A调试记录
  9. 区块链符号理论:符号方案和符号系统
  10. vue element UI 学习总结笔记(十一)_vue中打印模板设置
  11. 概率论复习(笔记用)
  12. Entry name ‘org/apache/commons/codec/language/bm/gen_approx_greeklatin.txt’ collided
  13. 泛函分析和他的基础概念
  14. go语言的类型之间的相互转化和float保留小数时的四舍五入
  15. 分享一个python生成ico图片程序
  16. layui数据表格与后台交互进行渲染
  17. 面试时如何回答你的缺点是什么?
  18. 人脸表情识别系统介绍——上篇(python实现,含UI界面及完整代码)
  19. ab压力测试 及结果分析
  20. 如何轻松画好服装设计效果图

热门文章

  1. 【bfs】极其简单的最短路问题
  2. equals 和 hashCode 到底有什么联系?一文告诉你
  3. [中级]Java命令学习系列(五)——jhat
  4. 【Python】有效资源爬取并集
  5. 考研生的努力程度是有多恐怖!
  6. 萤石云好友分享的监控怎么看_萤石S1:英超赛场上雄起的中国品牌
  7. 项目背景怎么描述_产品经理写简历,如何让「项目经验」更出众?
  8. 官网下载mysql实例数据库
  9. Redis学习之缓存穿透、缓存击穿和缓存雪崩详解
  10. oracle密码不能重复用_重复码