前面说,计算机用2个手指头数数,它内部的数是二进制,有0和1两个数字。也看到,对于人来说,二进制数too long, too inconvenient, sometimes troublesome。程序员也是人。程序员是十六指星人。十六指星人数数用十六进制。

十六进制共有16个数字,除了0~9,还用A~F 这6个字母分别代表10~15。多位数满16进1。以一例说明十六进制数转换为十进制数的方法:

1E240十六进制

= 1 × 164 + × 163 + 2 × 162 + 4 × 161 + 0 × 160

= 1 × 65536 + 14 × 4096 + 2 × 256 + 4 × 16

= 123456

没错,这就是前面那篇随笔中所例举过的数,其二进制表示为 11110001001000000。为方便看官,我把图在这里再贴一次。注意上面算式中蓝色的十六进制数字E转换为十进制数是14。

相比于二进制,十六进制数书写简洁,且与二进制数之间转换方便:十六进制数的每位数字对应二进制数的4位数字。我们将上例这个数的二进制形式按每4位用空格分隔,就能很清楚地看到这个对应关系了:

123456十进制

= 1E240十六进制

= 1 1110 0010 0100 0000二进制

注意,其中二进制数的最高位补了3个0(蓝色部分),凑齐了4位。

小结一下:(1)在计算机内部,数是二进制;(2)同一个数,可以用二进制、十六进制、十进制等不同的 表示形式 ;(3)十六进制因其简洁而又易于与二进制数之间互相转换,被程序员普遍使用

二进制的英文是binary,十六进制是hexadecimal,十进制是decimal。所以,上面Windows计算器截图上可以看到,二进制数前写着BIN,十六进制数前写着HEX,十进制数前写着 DEC。

Java 源代码中十六进制数前面要加0x,用以与十进制数区分,例如:123456写成0x1E240。

【Java Saves!】Session 6:十六指星人的更多相关文章

  1. 201871020225-牟星源《面向对象程序设计(java)》第十六周学习总结

    201871020225-牟星源<面向对象程序设计(java)>第十六周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  2. JAVA之旅(十六)——String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较

    JAVA之旅(十六)--String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较 过节耽误了几天,我们继续JAVA之旅 一.String概述 String时 ...

  3. 201871010105-曹玉中《面向对象程序设计(java)》第十六周学习总结

    201871010105-曹玉中<面向对象程序设计(java)>第十六周学习总结 项目 内容 这个作业属于哪个过程 https://www.cnblogs.com/nwnu-daizh/ ...

  4. 20145302张薇《Java程序设计》第十六周课程总结

    20145302 <Java程序设计>第十六周课程总结 实验报告链接汇总 实验一 Java开发环境的熟悉 实验二 Java面向对象程序设计 实验三 敏捷开发与XP实践 实验四 Andoid ...

  5. 201871010123-吴丽丽 《面向对象程序设计(Java)》第十六周学习总结

    201871010123-吴丽丽 <面向对象程序设计(Java)>第十六周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  6. 201271050130-滕江南-《面向对象程序设计(java)》第十六周学习总结

    201271050130-滕江南-<面向对象程序设计(java)>第十六周学习总结 博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.c ...

  7. 201871010111-刘佳华《面向对象程序设计(java)》第十六周学习总结

    学号-姓名<面向对象程序设计(java)>第十六周学习总结 实验十四  应用程序归档与线程初步 实验时间 2019-12-12 第一部分:理论知识总结 1.程序与进程的概念 ‐程序是一段静 ...

  8. 201871010104-陈园园《面向对象程序设计(java)》第十六周学习总结

    201871010104-陈园园<面向对象程序设计(java)>第十六周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  9. 201871010107-公海瑜《面向对象程序设计(java)》第十六周学习总结

    201871010107-公海瑜<面向对象程序设计(java)>第十六周学习总结            项目                            内容   这个作业属于哪 ...

随机推荐

  1. NSObject的load和initialize方法(转)

    全文转载自:http://www.cocoachina.com/ios/20150104/10826.html 在Objective-C中,NSObject是根类,而NSObject.h的头文件中前两 ...

  2. php中并发读写文件冲突的解决方案(文件锁应用示例)

    PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适 ...

  3. [转]c++流缓冲---rdbuf()

    C++标准库封装了一个缓冲区类streambuf,以供输入输出流对象使用.每个标准C++输出输出流对象都包含一个指向streambuf的指针,用 户可以通过调用rdbuf()成员函数获得该指针,从而直 ...

  4. 安卓开发笔记——关于图片的三级缓存策略(内存LruCache+磁盘DiskLruCache+网络Volley)

    在开发安卓应用中避免不了要使用到网络图片,获取网络图片很简单,但是需要付出一定的代价——流量.对于少数的图片而言问题不大,但如果手机应用中包含大量的图片,这势必会耗费用户的一定流量,如果我们不加以处理 ...

  5. NSDictionary 的有序性 (by the key in some rule)

    NSDictionary 的有序性: (by the key in some rule) NSDictionary*myDictionary =[NSDictionary dictionaryWith ...

  6. SNF开发平台WinForm之十二-发送手机短信功能调用-金笛-SNF快速开发平台3.3-Spring.Net.Framework

    1.调用前组装参数 2.调用发送信息服务脚本   .调用前组装参数: BaseSendTaskEntity entity = new BaseSendTaskEntity(); entity.Mess ...

  7. [转]WPF/MVVM快速开始手册

    I will quickly introduce some topics, then show an example that explains or demonstrates each point. ...

  8. codeforces Restore Cube(暴力枚举)

    /* 题意:给出立方体的每个顶点的坐标(是由源坐标三个数某几个数被交换之后得到的!), 问是否可以还原出一个立方体的坐标,注意这一句话: The numbers in the i-th output ...

  9. CentOS 6.4 编译安装LLVM3.3,Clang和Libc++

    LLVM的最新版本3.3终于在6月17日发布了,按之前的计划6月5日就应该发布了,不过毕竟没有太晚,赶在VS2013 preview(6月26日微软Build大会)之前出来了.加上之前gcc4.8.1 ...

  10. Understanding G1 GC Logs--转载

    原文地址:https://blogs.oracle.com/poonam/entry/understanding_g1_gc_logs Understanding G1 GC Logs By Poon ...