网站首页 > java教程 正文
大家好,今天我们来探讨下进制转换。
在探讨进制转换之前,我们先了解一下什么是进制。我们计算机通常使用的进制有:二进制、八进制、十进制和十六进制。
二进制:
什么是二进制呢?二进制就是满二进一的进制运算 如 0001 = 1 、0010 = 2。我们可以发现,二进制中只会出现0和1,同时二进制也是我们计算机底层存储和处理信息时使用的基本单位。
八进制:
同理,八进制就是满八进一的进制运算,即八进制中只会出现0~7的数字,如今我们计算中使用到的八进制已经很少了,那么二进制转八进制 如 10 = 1010 = 0012。
十进制:
十进制就是我们平时使用的计数方式,这里我就不多加赘述了
十六进制:
十六进制就是基数为16的运算进制,满16进一,而且由于二进制表示数据的话,太过冗长,所以在程序中我们一般喜欢使用16进制。由于我们的阿拉伯数字个位最大为9 所以超过9的数字我们使用a、b、c、d、e、f来表示。而且java中十六进制要以0x或0X开头。如 0X12E
在我们了解进制后,我们随后需要学习的就是一个新的概念:补码
那么什么是补码呢?官方的定义为:一个整数的补码和其原码的形式是相同的,负数的补码是此数的绝对值的二进制形式,按位取反再加1。由此可见,二进制补码数值的最高位是符号位,0为正数,1为负数。实际上,计算机中,二进制的数值都是通过补码的形式表示的。主要的原因就是使用补码可以将符号位和其他位统一处理。为什么这么说呢?
我们要再次明确一个知识,就是计算机中只有加法,所谓的加法不过是加了 一个负数,而二进制补码是可以表示负数的,故在计算中使用二进制补码进行计算。对了 强调一点,如果两个用补码表示的数相加时,如果最高位有进位,则被舍弃。
好了,我们了解了进制后,我们就可以学习进制的转换了
进制转换实际上我们可以倒叙位进制的个次方相加,
如二进制的转换十进制即
1001.1 = 1*2^3+0*2^2+0*2^1+1*2^0+1*2^(-1) = 8+0+0+1+0.5=9.5
十进制转二进制 即 整数部分 除二取余,逆序排列;小数部分,乘二取余,顺序排列。
如 9.5, 这9/2= 4.......1; 4/2 =2...0;2/2 =1...0 ; 1/2=0....1 小数部分: 0.5 *2 = 1
1,01,001,1001 ,1001.1
好了,今天的分享到此结束,如有错误或不足之处,请大家留言评论。
猜你喜欢
- 2024-10-24 Bigo的Java面试,我挂在了第三轮技术面上...
- 2024-10-24 纯干货|盘点Java常见的30个误区与细节
- 2024-10-24 JAVA中红黑树(javahashmap红黑树)
- 2024-10-24 一文让你理解java中的类加载器(java类加载器的作用)
- 2024-10-24 初识java—(三十五)Math类、Random类和BigDecimal类
- 2024-10-24 Java高级进阶-从计算机底层解析左移、右移、无符号右移
- 2024-10-24 终于有人把Git最火Java全套详细笔记(吐血放出)资料给分享出来了
- 2024-10-24 【算法题】1749. 任意子数组和的绝对值的最大值
- 2024-10-24 Java 的流程控制是什么样子的(java中的流程控制语句有哪些)
- 2024-10-24 Java常用内置函数(java内部类怎么调用)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)