千锋教育-做有情怀、有良心、有品质的IT职业教育机构

400-811-9990
当前位置:首页  >  技术文章  >  正文

Java小白必须要懂的进制转换!

时间:2023-03-20 17:24     来源:千锋教育 作者:qyf

  1. 十进制和二进制的转换(掌握)

  首先我们来学习十进制与二进制之间的转换,这是必须要掌握的哦。

  1.1 十转二

  如果我们想将十进制转为二进制,可以采用辗转法,将十进制除以2再取余,然后将余数和最后的1按照从下向上倒序写的方法。例如我们想将十进制的302转为对应的二进制,过程如下:

图片 1

  我们将上面每一步得到的余数和最后的1,按照从下向上倒序的方式进行编写,所以302对应的二进制数为100101110。

  1.2 二转十

  如果我们要把二进制转为十进制,有两种计算方法。

  第一种计算方法,是把二进制从最高位(最左边的“1”)开始,先按照从上到下的顺序写出来。先从第1位开始计算0*2,如果每一位上对应的余数是1,在乘以”2“之后还要再加”1“,否则就加0。接着用上一次计算得到的结果乘以2,后面再加1或者是0,以此类推。壹哥给大家用下面的例子进行演示:

图片 2

  第一种计算方式其实有点复杂,我们可以采用更简单的第二种计算方法。该方法是从最低位开始,每位上的数字*2的N次幂,N从0开始记数(0、1、2......),把每一位的乘积进行累加就是最后的结果。我们把上面的例子换成该方法进行计算,会如下所示:

图片 3

  其实根据第2种计算方法,你可以发现规律。最低位上计算出来的十进制结果最大值就是1,往前一位的最大值是2,以此类推,4、8、16、32、64、128、256.....

  所以如果该二进制位上是1,该位置上肯定可以得到对应的十进制最大值,否则只能得到0。比如11111111转成对应的十进制,就可以直接计算:1+2+4+8+16+32+64+128=255

  壹哥个人推荐采用这种方式进行计算,简单快捷,基本上我们熟悉之后就可以直接口算出结果。

  2. 二进制和八进制的转换(了解)

  2.1 八转二

  如果你想将八进制转为对应的二进制,可以先将八进制里的每一位一隔,然后分别将每一位换算成3位二进制的格式。比如八进制的764转成对应的二进制111110100,过程如下图所示:

图片 4

  2.2 二转八

  如果你想将二进制转为对应的八进制,可以从低位到高位,每三位一隔,将当前三位按照(4 2 1)的方式还原成对应的1位八进制。比如我们将二进制的1100101011转成对应的八进制1453,过程如下图所示:

图片 5

  1. 二进制和十六进制的转换(了解)

  3.1 十六转二

  如果你想将十六进制转为对应的二进制,可以先将十六进制里的每一位一隔,然后分别将每一位换算成4位(8 4 2 1)二进制的格式。比如十六进制的a8f5转成对应的二进制1010 1000 1111 0101,过程如下图所示:

图片 6

  3.2 二转十六

  如果你想将二进制转为对应的十六进制,可以从低位到高位,每四位一隔,将当前四位按照(8 4 2 1)的方式还原成对应的1位十六进制。比如我们将二进制的11 1010 0010 1010转成对应的十六进制3a2a,过程如下图所示:

图片 7

  1. 负数的二进制(了解)

  不仅正数可以有对应的二进制,负数也有对应的二进制。在计算机中,任何数据都是以补码的形式进行存储的。正数的原码、补码和反码都完全一样。但是负数的原码、反码、补码却不一样:

  负数的原码=将正数的原码符号位(最高位)改为1;

  负数的反码=符号位不变,其他位取反;

  负数的补码=负数的反码+1。

  壹哥在之前的文章中讲过,计算机中,最高位表示符号位,0表示正数,1表示负数。接下来壹哥就以-24和-68为例,给大家讲一下负数的二进制转换。

  4.1 负数转为二进制

  根据前面的内容,我们可以计算出正数24的原码是00011000(反码、补码也是这个)。所以-24对应的原码就出来了,我们直接将00011000的最高位改成1就行了,即-24的原码是10011000。于是,-24的反码也出来了,最高位不变,其余位全部取反,反码就是11100111。而-24的补码则是反码+1,所以-24的补码=11101000。如下图所示:

图片 8

  4.2 二进制转为负数

  既然我们可以将负数转为对应的二进制,当然也可以逆运算。假如我们现在有个二进制,补码是10111100(高位是I表示负数),我们要按照负数转二进制的逆运算进行操作。先计算出该补码对应的反码,反码=补码-1,即反码=10111100-1=10111011。接着根据反码计算出原码,原码=符号位不变,其他位取反=11000100。所以最终对应的十进制数是-68。

图片 9

  1. 小数的二进制(了解)

  另外小数和二进制之间也可以实现转换。

  5.1 小数转二进制

  12.02 0.02*2=0.04

  如果我们想将小数转为对应的二进制,整数和小数是分开计算的。如果有整数,则把整数单独转为对应的二进制。小数部分的计算则相对麻烦,主要是小数部分乘以2,取整数部分依次从左往右放在小数点后,直至小数点后为0。例如小数0.125的具体转换过程如下:

  1.将小数部分0.125乘以2,得0.25,取整数部分0记录下来;

  2.再将小数0.25乘以2,得0.5,再取整数部分0记录下来;

  3.再将小数部分0.5乘以2,得到整数1.0,再取整数部分1记录下来。因为1.0的小数点后为零,结束乘2的循环过程。

  最终我们得到0.125对应的二进制结果0.001,如下图所示:

图片 10

  5.2 二进制转小数

  如果我们想将二进制转为对应的小数,可以从小数点以后开始,依次将当前位数上的数字乘以2的-1到-N次方,再累加。比如我们想将0.0101转为对应的小数,则是02-1+12-2+02-3+12-4=0.3125。如果你口算不出来结果,可以用计算器哦。

图片 11

  至此,就把计算机中的进制问题给大家讲解完毕了。现在你对进制转换都掌握了吗?其实今天的内容,与Java没有太大关系,所有关于编程开发或计算机技术相关的学习,都应该有进制的基础。所以学习完今天的内容之后,对我们加深理解计算机的底层也是很有帮助的哦。

相关文章

上一篇:微服务是什么?
下一篇:
  • 北京总部地址:北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术学院广场服务楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 深圳校区地址:深圳市宝安区宝安大道5010号西部硅谷B座A区6层A605/B座C区1层108
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 上海校区地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 广州校区地址:广州市白云区永平街永泰学山塘学山文化创意谷A1栋六楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 郑州二七区校区地址:郑州市二七区航海中路60号海为科技园C区10层
    郑州高新区校区地址:郑州市高新区金梭路与银杏路交叉口教育科技产业园南门D座4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 大连校区地址:辽宁省大连市高新园区爱贤街10号大连设计城A座901
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 武汉金融港校区地址:武汉市东新区光谷大道77号金融港B18栋三楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 成都校区地址:成都市高新区肖家河沿街138号肖家河大厦三楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 西安校区地址:西安市雁塔区高新六路52号立人科技C座西区4楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 杭州旺田校区:浙江省杭州市江干区九堡旺田书画城A座4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 青岛校区地址:青岛市市北区龙城路31号卓越世纪中心4号楼5层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 重庆校区地址:重庆市九龙坡区科园一路3号渝高大厦9楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 长沙校区地址:湖南省长沙市岳麓区麓谷企业广场A2栋三单元306号
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 哈尔滨校区地址:哈尔滨市松北区世泽路689号 科技创新城4号楼1101
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 南京校区地址:南京市建邺区应天大街780号弘辉产业园1栋2层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 太原校区地址:太原市小店区长治路230号能源互联网大厦6层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 沈阳校区地址:辽宁省沈阳市浑南区世纪路16号东大软件园B园B1座A201
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 合肥校区地址:合肥市包河区徽州大道396号东方广场B座12A
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 千锋教育服务号

    关注千锋学习站小程序
    随时随地免费学习课程

  • 千锋教育移动站

    扫一扫快速进入
    千锋移动端页面

  • 千锋互联服务号

    扫码匿名提建议
    直达CEO信箱