首页 > 其他分享 >进制的本质

进制的本质

时间:2022-11-25 15:57:52浏览次数:46  
标签:倒数 进制 结果 本质 八进制 进位 查表

进制的本质

进制

「进制」也就是 「进位制」,其实是一种记数的方式,也称为「进位计数制」,是用一组固定的符号和统一的规则来表示所有数值的方法。对于任何一种进制—X进制,就表示每一位置上的数运算时都是逢X进一位。一进制是逢一进一,二进制是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一,以此类推,X进制就是逢X进位

# 一进制 1~20
1
1 1
1 1 1
1 1 1 1
...

# 三进制 1~20
0 1 2
10 11 12
20 21 22
100 101 102
110 111 112
120 121 122
...

# 七进制 
0 1 2 3 4 5 6
10 11 12 13 14 15 16
20 21 22 23 24 25 26
...

对于任何一个数,我们可以用不同的进位制来表示,他们是等价的,只是表示形式不同而已

进制实际上就是一组符号,任何人都可以用任意的符号去定制自己的进制。因此,数字与符号并无本质区别

进制运算

进制运算的本质就是写表和查表

这里先写出一个八进制的表,在正常的八进制中有0、1、2、3、4、5、6、7这八个元素,它们所表示出来的数如下:

接着尝试用八进制计算下面的结果:

2 + 3 = ?
4 + 5 = ?
2 * 3 = ?
4 * 5 = ?

加法法则

  • 2 + 3其实就是在2的基础上,往后数3个数,参照上表可知,2往后的第三个数为5,故2 + 3 = 5

  • 依照前面的思路,4 + 5从4往后数5个数,便是11,所以4 + 5 = 11

到此,可以做出八进制的加法表:

乘法法则

  • 加法法则就是往后数个数,那同理,乘法法则就是往后数成倍的个数,2 * 3就是3个2相加,也就是从2往后数4个数,便为6,所以2 * 3 = 6
  • 同上,4 * 5 就是从4往后数16个数,即为24,故4 * 5 = 24

到此,可以做出八进制的乘法表:

接下来尝试计算以下结果:

277 + 333 = ?
276 * 54 = ?
234 / 4 = ?
  • 277 + 333:我们先从最后一个位看,是7加3,查表得12,故最后一位结果为2,1向前进位;再看倒数第二个位,还是7加3,加上刚刚进位的1,查表得13,所以倒数第二个位的结果为3,1向前进位;最后看倒数第三个位,2加3再加上刚进位的1,查表得6,故倒数第三个位的结果为6,没有进位。所以最终结果为632

  • 276 * 54:先算276乘4,从最后一个位看起,是6乘4,查表得30,故最后一个位的结果为0,3向前进位;再看倒数第二个位,为7乘4,再加上刚刚进位的3,查表得37,故倒数第二个位的结果为7,3向前进位;最后看倒数第三个位,2乘4再加上刚刚进位的3,查表得13,所以276乘4的结果为1370;再算276乘5,同理得1666;最后1370与1666错位相加(1370+16660)得到最终结果20250

  • 234 / 4:除法的本质其实就是看除数乘以多少能够成为被除数或最接近被除数。先从被除数第一个位看起,发现2不够被4除,所以我们再看23,发现此时够除,于是查表寻找4乘以多少最接近23,得4 * 4 = 20,故第一个位的结果为4;然后剩下34除以4,查表得4 * 7 = 34,故第二个位的结果为7。所以最终结果为47

结论:无论是什么进制,本身都是有一套完美的运算体系的,我们都可以通过列表的方式将它计算出来

标签:倒数,进制,结果,本质,八进制,进位,查表
From: https://www.cnblogs.com/TNTksals/p/16925398.html

相关文章

  • LeetCode 693.交替位二进制数(简单)
    题目描述:给定一个正整数,检查它的二进制表示是否总是0、1交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。示例1:输入:n=5输出:true解释:5的二进制表示是:101示......
  • 如何用jQuery / Javascript播放二进制MP3流?
    我从ajax调用​中获得了纯二进制MP3流.没有标题,没有.只是直接MP3位.(实际上甚至连一条流都没有?)我希望能够在网页上播放它(如果可能的话,还可以提供下载).这可能吗?如果是......
  • 如何用jQuery / Javascript播放二进制MP3流?
    我从ajax调用中获得了纯二进制MP3流.没有标题,没有.只是直接MP3位.(实际上甚至连一条流都没有?)我希望能够在网页上播放它(如果可能的话,还可以提供下载).这可能吗?如果是这......
  • [原创]android资源xml颜色值进制推算
    假设颜色值是​​25a3a9​​那么存储后显示的值是这样的,data——type_dataimage.png那么用微软计算器表示4280656809则需要用32个以上的bite位表示,也就是无符......
  • 超容易理解的进制转换代码
    voidtentoeight(intnum){if(num!=0){intm=num%8;//取余数num=num/8;//顺序tentotwo(num);printf("%d......
  • win11 计算器的进制转换
            ......
  • c++类的二进制组件复用
    本文内容是对EssntialCOM一书中第一章内容的总结,该章内容很好的阐述了c++类的二进制复用所需要面对的一些问题及解决方案。我在使用c++开发模块中,使用了以下几种分发方......
  • 十六进制数转换为八进制数
       【问题描述】给定n个十六进制正整数,输出它们对应的八进制数。    输入格式输入的第一行为一个正整数n(1<=n<=10)。接下来n行,每行一个由0~9......
  • [C++]二进制求子集
    这几天做[leetcode1178]猜字谜的题目,用到了很多小的知识技巧点。其中一个就是二进制状态压缩以及如何根据一个二进制序列求其子集,如二进制序列110111001子集里有000000001......
  • 【算法】最后一个单词的长度,颠倒二进制位,排列序列等三道题目
    颠倒二进制位题目描述颠倒给定的32位无符号整数的二进制位。提示:请注意,在某些语言(如Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并......