热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

同一个整型常量怎样在不同进制间之间转换?

整型常量可以分别用二进制、八进制、十进制和十六进制表示,不同的进制并不影响数据本身的大小,同一个整型常量可以在不同进制之间转换,具体转换方

整型常量可以分别用二进制、八进制、十进制和十六进制表示,不同的进制并不影响数据本身的大小,同一个整型常量可以在不同进制之间转换,具体转换方式如下。

1.十进制和二进制之间的转换


(1)十进制转二进制。

十进制转换成二进制就是一个除以2取余数的过程。把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。以十进制的6转换为二进制为例进行说明,如图2-13所示。







三次除以2计算得到余数依次是0、1、1,将所有余数倒序排列是110。所以十进制的6转换成二进制,结果110。

(2)二进制转十进制。

二进制转换成十进制要从右到左用二进制位上的每个数去乘以2的相应次方,例如,将最右边第一位的数乘以2的0次方,第二位的数乘以2的1次方,第n位的数乘以2的n一1次方,然后把所有乘得的结果相加,得到的结果就是转换后的十进制。

以二进制教01100100转换为十进制为例进行说明,转换方式如下:

0·2*0+20+1+2'+0*22+0*23+0*24+1*25+1*24+0*27*100

由于0乘以多少都是0,所以上述表达式也可以简写为:

142+3*2+1*26=100

得到的结果100就是二进制数01100100转换后的十进制表现形式。

2.二进制和八进制、十六进制之间的转换

编程中之所以要用八进制和十六进制,是因为它们与二进制之间的互相转换很方使,而且它们比一串长的二进制数方便书写和记忆。接下来,就为大家详细介绍如何将二进制料换为八进制和十六进制。

(1)二进制转八进制。

二进制转八进制时,首先需要将二进制数自右向左每三位分成一段(不足三位的,在左倒补0),然后将二进制数每段的三位数转为八进制的一位,转换过程中数值的对应关系如表2-4所示。

表2-4二进制和八进制数值对应表







了解了二进制转八进制的规别,接下来详细讲解如何将一个二进制数00101010转为八进制,具体步骤如下:

①每三位分成一段,结果为:000 101 010。

②将每段的数值分别查表替换,结果如下:

000→0

101→5

010→2

③将替换的结果进行组合,转换的结果为052(注意八进制必须以0开头)。

(2)二进制转十六进制。

二进制转换十六进制,与转八进制类似,不同的是要将二进制数每四位分成一段(不足四位的,在左侧朴0),然后通过查表将二进制数每段的四位数特换为八进制的每一位即可。二进制转十六进制过程中数值的对应关系如表2-5所示。

了解了二进制转十六进制的规则,接下来通过一个例于来学习。假设要将一个二进制数10100101转为十六进制,具体步骤如下;

①每四位分成一段,结果为:1010 0101。

②将每段的数值分别查表替换,结果如下:

1010-→A

0101→5







③将替换的结果进行组合,转换的结果为OxA5或0XA5(注意十六进制必须以Ox或者OX开头)。





推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 如何查找和管理计算机中的C盘临时文件
    本文详细介绍了如何在计算机中找到和管理C盘的临时文件,包括其具体路径、环境变量设置方法以及清理这些文件对系统性能的影响。对于希望优化系统性能和释放磁盘空间的用户来说,这是一篇非常有价值的参考。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 深入探讨双臂机器人运动学与D-H建模在ROS系统MoveIt中的应用
    本文详细介绍了如何利用ROS系统MoveIt进行双臂机器人的运动学分析和D-H建模,涵盖刚体位姿描述、正逆运动学求解以及具体的D-H参数计算方法。 ... [详细]
author-avatar
ZQ我是疯癫小karmenRJ
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有