计算机进制及转换_计算机运算 进制转换

计算机进制及转换_计算机运算 进制转换计算机使用二进制,另外常用的还有八进制、十进制和十六进制。进制特点及表示方法(1)二进制:满2进1,0~1表示,在JDK1.7之前程序中不容许定义二进制数字,从JDK1.7开始可以定义。一般以0b

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

计算机使用二进制,另外常用的还有八进制、十进制和十六进制。

进制特点及表示方法

(1)二进制:满2进1,0~1表示,在JDK1.7之前程序中不容许定义二进制数字,从JDK1.7开始可以定义。一般以0b/0B作为开头

(1)八进制:满8进1,0~7表示,一般以0作为开头

(1)十进制:满10进1,0~9表示,如果数字前面没有特殊标识,就是十进制

(1)二进制:满16进1,0~9,a~f表示,一般以0x/0X作为开头

进制转换

(1) 十进制向其他进制的转换:除以对应的进制,余数倒排

(2)其他进制向十进制的转换:从低位开始,按位次乘以进制的位次次幂,然后加起来

二进制和十进制的相互转换

根据上面的进制转换规则,可以演练一下二进制和十进制的相互转换,如将十进制的18转换为2进制。

计算机进制及转换_计算机运算 进制转换

如图所示,将十进制数字除以对应的要转换的进制2,将余数倒排获取,就得到了十进制18的二进制形式10010。如果要将这个二进制数字反过来再转化为十进制数字,按照从低位开始,按位次取幂再求和,得到1*2^4+1*2^1=18。

二进制和八进制的相互转换

二进制和八进制的转换也有相应规则,二进制转化为八进制,3位变1位,不够的位数高位补0,因此上述的10010补全高位就是010010,转换为八进制就是22。然后八进制转二进制,是按照一变三,即八进制一位变成二进制的三位,这样反过来22变成010010,去掉高位就是10010。

二进制和十六进制相互转换

二进制和十六进制的转换也有相应规则,二进制转化为十六进制,4位变1位,不够的位数高位补0,因此10010补全高位就是00010010,转换为十六进制就是12。然后反过来转换为二进制,是按照一变四,变成00010010,去掉高位就是10010。

小数转换为二进制

小数转换二进制分为两部分,小数的整数部分正常的转换为二进制,小数的小数部分乘以2,取相乘后的数整数部分,然后继续取相乘数小数部分乘以2,取相乘后的数整数部分,如此反复。

如十进制的10.125如果转换为二进制,首先将10转换为二进制就是1010,然后开始循环乘小数部分取整数,如此反复。

step1 0.125*2=0.25,取整数部分 0

step2 0.25*2=0.50,取整数部分 0

step3 0.50*2=1.0,取整数部分1

计算结束,这样10.125如果要用二进制来表示,就是1010.001。这种情况是能比较准确得到二进制数的,如果是其他数字呢?可以看一个普通的小数来转换为二进制,就10.3如何转换为二进制。

step1 0.3*2=0.6 ,取整数部分0

step2 0.6*2=1.2,取整数部分1

step3 0.2*2=0.4,取整数部分0

step4 0.4*2=0.8,取整数部分0

step5 0.8*2=1.6,取整数部分1

step6 0.6*2=1.2,取整数部分1

可以发现这个取不尽,最后应该是一个循环二进制的小数形式1010.01001 1001 1001 1001….。

 

结论:以上是计算机进制和转换相关的知识,只需要遵循一定的套路就可以实现。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168329.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WaitForSingleObject_调用wait方法时,线程会放弃对象锁

    WaitForSingleObject_调用wait方法时,线程会放弃对象锁摘要在MicrosoftWindows平台上有几种以原子方式锁定代码和数据的不同方法。此白皮书的主要目的是向开发人员简要介绍Windows中进行锁定的不同方法以及与这些锁定有关的相应性能开销。因为未来架构将是多核架构,因此此信息非常适用。简介多线程软件应用对于提升英特尔内核架构的性能至关重要。锁定代码通常是多线程应用中运行最频繁的代码。确定要使用的锁定方法与确定应用中并行处理

    2022年9月20日
    2
  • pycharm git使用_pycharm上传github

    pycharm git使用_pycharm上传githubpycharm操作git一、git安装和使用​ 安装操作:https://www.cnblogs.com/ximiaomiao/p/7140456.html1.如何使用git将本地代码上传到远程仓库初始化gitinit查看当前仓库状态gitstatus将项目的文件添加到仓库中gitadd<文件名>gitadd.(上传所有文件)将add的文件commit到仓库gitcommit-m”备注”将本地仓库关联到远程仓库gi

    2022年8月25日
    6
  • UFT12.02安装包

    UFT12.02安装包http://pan.baidu.com/s/1sjrz4gX

    2022年5月28日
    34
  • mysql修改表名

    mysql修改表名ALTER TABLE table_nameRENAMETOnew_table_name

    2022年6月1日
    27
  • ioctl之FIONREAD

    ioctl之FIONREAD在学习ioctl时常常跟read,write混淆。其实ioctl是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的。而read,write是把数据丢入缓冲区,硬件的驱动从缓冲区读取数据一个个发送或者把接收的数据送入缓冲区。 ioctl(keyFd,FIONREAD,&b)得到缓冲区里有多少字节要被读取,然后将字节数放入b里面。接下来就可以

    2022年7月23日
    18
  • 精进Spring—Spring中定时器实现

    在一些工作需要使用到定时器,Spring很好的集成了定时器的功能! 在Spring 中使用Quartz,本文介绍Spring3.0以后自主开发的定时任务工具,spring task,可以将它比作一个轻量级的Quartz,而且使用起来很简单,除spring相关的包外不需要额外的包,

    2022年3月1日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号