可视化编码

在过去的一个月左右的时间里,我每天花费一些时间来阅读Neo4j代码库的新部分,以使其更加熟悉,而我最喜欢的类之一是Bits类,该类可以完成所有底层工作,到磁盘。

特别是,我喜欢它的toString方法,该方法返回以字节,整数和长整数形式存储的值的二进制表示形式。

我认为尝试编写自己的函数将是一个有趣的练习,该函数接受32位映射,并根据是否设置了位返回包含1或0的字符串。

关键的见解是,我们需要从最高位开始向下迭代,然后创建该值的位掩码,并使用完整的位图按位进行处理。 如果该计算的结果为0,则不设置该位,否则为1。

例如,要检查是否设置了最高位(索引31),我们的位掩码将设置第32位,所有其他位都设置为0。

java> (1 << 31) & 0x80000000
java.lang.Integer res5 = -2147483648

如果要检查是否设置了最低顺序位,则应运行以下计算:

java> (1 << 0) & 0x00000001
java.lang.Integer res7 = 0java> (1 << 0) & 0x00000001
java.lang.Integer res8 = 1

现在,将其放入检查位图的所有32位而不是仅检查我们定义的位的函数中:

private String  asString( int bitmap )
{StringBuilder sb = new StringBuilder();sb.append( "[" );for ( int i = Integer.SIZE - 1; i >= 0; i-- ){int bitMask = 1 << i;boolean bitIsSet = (bitmap & bitMask) != 0;sb.append( bitIsSet ? "1" : "0" );if ( i > 0 &&  i % 8 == 0 ){sb.append( "," );}}sb.append( "]" );return sb.toString();
}

并进行快速测试以检查其是否有效:

@Test
public void shouldInspectBits()
{System.out.println(asString( 0x00000001 ));// [00000000,00000000,00000000,00000001]System.out.println(asString( 0x80000000 ));// [10000000,00000000,00000000,00000000]System.out.println(asString( 0xA0 ));// [00000000,00000000,00000000,10100000]System.out.println(asString( 0xFFFFFFFF ));// [11111111,11111111,11111111,11111111]
}

整齐!

翻译自: https://www.javacodegeeks.com/2015/05/coding-visualising-a-bitmap.html

可视化编码

可视化编码_编码:可视化位图相关推荐

  1. 数据可视化工具_数据可视化

    数据可视化工具 Visualizations are a great way to show the story that data wants to tell. However, not all v ...

  2. c++可视化开发_页面可视化配置搭建工具技术要点

    点击上方"IT平头哥联盟",选择"置顶或者星标" 与你一起成长- 前言 最近公司也在计划做可视化配置平台,从本文原作者(腾讯AlloyTeam@陈韩杰)的分析中 ...

  3. 可视化管理_供应链可视化管理的应用与展望

    一.供应链可视化定义及基本内容  1.供应链可视化的定义供应链可视化就是利用信息技术,采集.传递.存储.分析.处理供应链中的订单.物流以及库存等相关指标信息,按照需求以图形化的方式展现出来.2.供应链 ...

  4. 鲜活数据数据可视化指南_数据可视化实用指南

    鲜活数据数据可视化指南 Exploratory data analysis (EDA) is an essential part of the data science or the machine ...

  5. git 可视化工具_版本控制可视化神器Gource:简单易上手,效果恰似烟花秀

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 如此华丽的绽放,莫非是一场动画烟火秀? 非也,这其实是GitLab社区版的进化史,7年间82000次commit,尽皆在2.5分钟的视频内展 ...

  6. 算法训练营 重编码_编码训练营后如何找到工作

    算法训练营 重编码 by Roxy Ayaz 由Roxy Ayaz 编码训练营后如何找到工作 (How to get a job after a coding bootcamp) Getting a ...

  7. 算法训练营 重编码_编码训练营适合您吗?

    算法训练营 重编码 by Joanna Gaudyn 乔安娜·高登(Joanna Gaudyn) 编码训练营适合您吗? (Is a Coding Bootcamp something for you? ...

  8. 算法训练营 重编码_编码训练营之后该做什么-以及如何获得成功

    算法训练营 重编码 by Anthony Morris 安东尼·莫里斯(Anthony Morris) 编码训练营之后该做什么-以及如何获得成功 (What to do - and how to fi ...

  9. 算法训练营 重编码_编码训练营后十四天如何找到工作

    算法训练营 重编码 Fourteen days after I graduated from my coding bootcamp, I had a job offer. Two weeks afte ...

最新文章

  1. EEG vs MRI vs fMRI vs fNIRS简介
  2. python语言能干什么-python语言能做什么
  3. wumpus java_人工智能经典问题The Wumpus World-简明窗体小游戏
  4. 作者:李冰(1989-),女,中国电子技术标准化研究院工程师。
  5. android代码关闭数据库,android – 我应该如何正确打开和关闭我的数据库
  6. 吞噬星空怎么会有鸿蒙,论吞噬星空与鸿蒙的关系
  7. 删除桌面图标的小箭头
  8. 互联网应用程序压力测试的那点事
  9. java 静态相关内容
  10. 平面图判连通 蓝桥杯模拟赛题
  11. java方法调用制作万年历,基于JAVA的万年历api调用代码实例
  12. 用微信名片制作软件打造专属的电子名片
  13. 5W字穿透 ELK(史上最全):elasticsearch +logstash+kibana
  14. 介绍几款可用的web应用防火墙
  15. 安装mysql的初始密码在哪里
  16. Linux之磁盘信息查看
  17. Daily Accumulation
  18. 获取Redis所有Key / 删除指定前缀的Key
  19. CCF/CSP 201709-2 公共钥匙盒的求解 C++版
  20. 京东软件测试工程师招聘信息,【京东工资】软件测试工程师待遇-看准网

热门文章

  1. jzoj6804-NOIP2020.9.26模拟jerry【dp】
  2. 【线段树】Serious Business(CF1648D)
  3. [XSY4220] 九万步(结论)
  4. codeforces 884E Binary Matrix 并查集,滚动数组
  5. 面试 - 要不简单聊一下你对MySQL索引的理解?
  6. 汇编语言(八)之删除数组中为零的元素
  7. Java中的函数传递
  8. 谈谈HashMap线程不安全的体现
  9. vue中如何使用vi-for限制遍历的条数?只查询前三条、查询4-6条怎么实现?
  10. 2020蓝桥杯省赛---java---B---7(分类计数)