• 二进制:  0-1,满2进1,在java中 0b 或者 0B 开头来表示
  • 八进制:  0-7,满8进1,在java中 以 0 开头来表示
  • 十进制:  0-9,满10进1,日常使用的数字就是十进制
  • 十六进制: 0-9 和 A(10)-F(15) ,满16进1,以0x 或者 0X来开头表示

进制对照表

二进制 八进制 十进制 十六进制
1 1 1 1
10 2 2 2
11 3 3 3
100 4 4 4
101 5 5 5
110 6 6 6
111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F
  1. 二进制转十进制

    规则: 从最低位(右面)开始,每个位上的数 * (2 的(位数下标(从0开始))的次方)结果求和得到的数字就是十进制


     例: 0b1011转换十进制,  1011; 1*(2的0次方) + 1 *(2的1次方)+ 0*(2的2次方)+ 1*(2的3次方)= 11;
  2. 八转十进制

    从最低位(右面)开始,每个位上的数 * (8 的(位数下标(从0开始))的次方)结果求和得到的数字就是十进制


  3. 十六进制转十进制

    从最低位(右面)开始,每个位上的数 * (16 的(位数下标(从0开始))的次方)结果求和得到的数字就是十进制


  4. 十进制转二进制

    规则: 将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制


    例:  将66 转换成2进制

  5. 十进制转八进制

    规则: 将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制

    例: 将567 转换成八进制


  6. 十进制转十六进制

    规则: 将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制


    例: 9876 转换成 16 进制

  7. 二进制转八进制

    规则: 从低位开始,将二进制数每三位一组,转成对应八进制数即可


    例: 101110 转换成八进制

  8. 二进制转十六进制

    规则: 从低位开始,将二进制数每四位一组,转成对应的十六进制数即可,


    例: 10111001 转换成十六进制

  9. 八进制转二进制

    规则: 将八进制数每一位,转成对应的一个三位的二进制数即可

  10. 十六进制转二进制

    规则: 将十六进制每一位,转成对应的一个四位的二进制数即可

原码、反码、补码

1. 二进制的最高位就是符号位,0表示正数,1表示负数

2. 正数的原码、反码、补码都是一样 (三码合一)

3. 负数的反码 = 它的原码符号位不变,其它位取反( 0->1,1->0)

4. 负数的补码 = 它的反码+1, 负数的反码 = 负数的补码 - 1

5. 0 的反码、补码都是 0

6. java中的数都是有符号的,java中没有无符号之说

7. 在计算机运算的时候,都是以补码的方式来运算的

8. 当我们看到运算结果的时候,要看它的原码

java 中的7个位运算符

1. 按位与 & : 两位全为1,结果为1,否则0

2. 按位或 | : 两位有一个为1,结果为1,否则为0

3. 按位异或 ^ : 两位一个为0,一个为1,结果为1,否则为0

4. 按位取反 ~: 0->1,1->0

5. >> 算术右移: 低位溢出,符号位不变,并用符号位补溢出位

6. << 算术左移: 符号位不变,低位补零

7. >>> 逻辑右移也叫无符号右移,运算规则: 低位溢出,高位补0

/*** 原码、反码、补码* 1. 二进制的最高位就是符号位,0表示正数,1表示负数* 2. 正数的原码、反码、补码都是一样 (三码合一)* 3. 负数的反码 = 它的原码符号位不变,其它位取反( 0->1,1->0)* 4. 负数的补码 =  它的反码+1, 负数的反码 =  负数的补码 - 1* 5. 0 的反码、补码都是 0* 6. java中的数都是有符号的,java中没有无符号之说* 7. 在计算机运算的时候,都是以补码的方式来运算的* 8. 当我们看到运算结果的时候,要看它的原码*/public static void main(String[] args) {/*** 按位与 & : 两位全为1,结果为1,否则0* 2 和 3 都是正数, 正数三码合一* 2的补码  00000000 00000000 00000000 00000010* 3的补码  00000000 00000000 00000000 00000011* 按位与后 00000000 00000000 00000000 00000010 转换成 10进制 为 2*/System.out.println(2 & 3);  // = 2/*** 按位取反 ~: 0->1,1->0* -2的原码(负数符号位为1)               10000000 00000000 00000000 00000010* -2反码  (原码符号位不变其它位取反)       11111111 11111111 11111111 11111101* -2的补码  (补码 = 反码 +1)            11111111 11111111 11111111 11111110* 按位取反                             00000000 00000000 00000000 00000001 符号位为0 得到的结果是正数 正数是三码合一, 转换为 10进制 = 1**/System.out.println(~-2); // = 1/*** 按位取反 ~: 0->1,1->0* 2的原码 (正数三码合一 原码、反码、补码都是一样)              00000000 00000000 00000000 00000010* 按位取反                                               11111111 11111111 11111111 11111101  符号位为1 此数为负数,* 反码 (反码 =  补码 - 1)                               11111111 11111111 11111111 11111100* 原码                                                  10000000 00000000 00000000 00000011 转换为十进制 = -3*/System.out.println(~2); // = -3/*** 按位或 | : 两位有一个为1,结果为1,否则为0* 2 的原码   00000000 00000000 00000000 00000010* 3 的原码   00000000 00000000 00000000 00000011*           00000000 00000000 00000000 00000011 转换为十进制 = 3*/System.out.println(2 | 3); // =  3/*** 按位异或 ^ : 两位一个为0,一个为1,结果为1,否则为0* 2 的原码   00000000 00000000 00000000 00000010* 3 的原码   00000000 00000000 00000000 00000011*           00000000 00000000 00000000 00000001 转换为十进制 = 1*/System.out.println(2 ^ 3); // = 1/*** 算术右移: 低位溢出,符号位不变,并用符号位补溢出位* 正数运算 132 / 2 / 2 / 2 = 16*/System.out.println(132 >> 3); // = 16/*** 算术右移: 低位溢出,符号位不变,并用符号位补溢出位**           -1的原码(负数符号位为1)               10000000 00000000 00000000 00000001*           -1反码  (原码符号位不变其它位取反)       11111111 11111111 11111111 11111110*           -1的补码  (补码 = 反码 +1)            11111111 11111111 11111111 11111111*           右移两位后                           11111111 11111111 11111111 11111111*           反码                                11111111 11111111 11111111 11111110*           原码                                10000000 00000000 00000000 00000001 转换十进制 = -1*/System.out.println(-1 >> 2); // = -1/***  << 算术左移: 符号位不变,低位补零*  3 * 2 * 2 = 12*/System.out.println(3 << 2); // = 12/*** >>> 逻辑右移也叫无符号右移,运算规则: 低位溢出,高位补0*/System.out.println(5 >>> 2); // = 1}

java 中的进制转换相关推荐

  1. java中的进制转换

    进制转换 首先是十进制转化为其他进制,如二进制,八进制,十六进制: 它们在java中都有专门的函数可供调用: 如:十进制转化为二进制时调用toBinaryString(); 十进制转化为八进制时调用t ...

  2. java中的进制转换(十进制和二进制)

    在java中有进制转换,其中有十进制,二进制,八进制,十六进制,这里主要讲的是其中的十进制和二进制. 当我们一个数要变成二进制的时候可以对它进行除二运算.就比如6的二进制.如图            ...

  3. java中各个进制转换

    转自:http://aijava.cn/2359.html 众所周知.程序世界计算机中采用的是二进制,一个数字可以用任意进制表示.所以看一个数据值的同时.还要观察它的进制.以免造成笑话. 此时.进制之 ...

  4. 小技巧 ----- Java中的进制转换

    自带的API Integer.parseInt(数, 数对应的进制)/Integer.valueOf(数, 数对应的进制) ----- 将不同进制数转为十进制数 Integer.toString(十进 ...

  5. java中的进制输出转换_Java I/O : Java中的进制详解

    作者:李强强 上一篇,泥瓦匠基础地讲了下Java I/O : Bit Operation 位运算.这一讲,泥瓦匠带你走进Java中的进制详解. 一.引子 在Java世界里,99%的工作都是处理这高层. ...

  6. java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)...

    在java编辑中有没有遇到经常需要进行java中各进制之间的转换(十进制转十六进制.十进制转二进制.二进制转十进制.二进制转十六进制)的事情呢?下面我们就来分析一下各自是怎么转换的: [java] / ...

  7. java中的进制输出转换_java中进制的转换,Byte与16进制的转换

    java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下: 首先关于最简单的二进制转换的方法有: 十 ...

  8. html进制转换js代码,JS中的进制转换以及作用

    js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: 运行下面代码 //10进制转为16进制 (10).toString(16) ...

  9. python二进制反码例题_python中的进制转换和原码,反码,补码

    python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...

最新文章

  1. 当面试官问这些基础的Python问题时,竟然还有80%的人不会!
  2. 《评人工智能如何走向新阶段》后记(深谈人工智能发展前沿)
  3. 关于加载 下拉 刷新,和加载更多,
  4. 互联网的尽头是乡村振兴
  5. 《犯罪心理学》读书笔记(part5)--犯罪心理的形成与内在因素的影响(下)
  6. 蒙古族女孩鲍尔金娜的小说《紫茗红菱》
  7. 源码 连接mysql_MySql轻松入门系列————第一站 从源码角度轻松认识mysql整体框架图...
  8. Redis集群添加节点
  9. Oracle如何根据SQL_TEXT生成SQL_ID
  10. 【SpringBoot_ANNOTATIONS】自动装配 02 @Resource @Inject
  11. 最新版本启动HBuilderX.exe时,被联想mcafee杀毒软件删除的解决方法
  12. 手机 省份证 归属地查询接口
  13. 计算机主机电源连接,七个步骤教你主机电源如何接线
  14. Zookeeper选举机制
  15. Visio方向键无法移动对象的解决办法[笔记本版]
  16. 工程部署: 低算力平台模型性能的优化
  17. Linux 基础总结,这一篇就够了!
  18. python 简单的颜色序列生成器
  19. torch.squeeze和torch.unsqueeze
  20. Unity下利用 timeScale和 unscaledDeltaTime实现部分静帧

热门文章

  1. 运维企业专题(10)RHCS集群工具——FENCE搭建、高可用服务配置详解
  2. python自动退出程序_python异常退出
  3. java矩阵传递给r_从JAVA调用R得到卡方统计和p值
  4. php函数默认参数不传值报错,php 关于函数参数的默认值
  5. Vue教程5【vuex】getters,mapState,mapGetters,mapActions,mapMutations,模块化namespace
  6. python3的各个版本有什么区别_python不同版本的_new_不同点总结
  7. 学JS的心路历程 -物件与原型(二)
  8. bzoj 1731 [Usaco2005 dec]Layout 排队布局——差分约束
  9. 函数指针--全局函数指针与类的函数指针(二)
  10. 阿里云E-HPC联合安世亚太、联科集团共建云超算生态