当前位置:网站首页 > 搬家搬厂 > 正文

关于8的加减法,二进制/八进制/十进制/十六进制,,怎么学会?是怎么算的方式?

0 新人999 新人999 2023-05-04 17:36 1017

关于8的加减法

二进制/八进制/十进制/十六进制 怎么学会?是怎么算的方式?

      能耐心点教我,谢谢

二进制/八进制/十进制/十六进制 怎么学会?是怎么算的方式?

      我们先思考一下,怎样用有限的符号表达一个很大的数字?例如我们有阿拉伯数字0~9,那么我们可以用这个集合内的符号表达0~9范围内的数。那么我们怎样表达十百乃至千万呢?

      可以想到的,也是我们现在正在使用的做法是,把大数拆成多个部分,每个部分都可以用我们现有的符号表示,这些符号再通过一定的组合方式就可以还原原来的大数。至于为什么不用更多符号……多麻烦啊。

      拆分的方法是,首先设置一个数作为进制数,然后用大数反复除以这个进制数,把每一次除法的商和余数记录下来,然后用定位原理就可以表示这个数。

      打个比方,我们有一堆围棋棋子,但是它的数量远远超过我们用一个符号能表示的范围。我们就要设计一套可以通过我们已有的符号来表示它的数量的方法。为什么要用棋子……因为便宜啊,而且形状规整容易计数。

      首先我们要设置一个进制数。例如我们一只手有五根手指,那就用五进制好了。接下来我们要用五去除这堆棋子数,于是我们找来五个筐。我们每一轮把这堆棋子依次往每个筐里放入一枚,确保这一轮操作结束之后,每个筐里的棋子数量是一样多的。

      进行了若干轮之后,五个筐里分别装了许多棋子。我们发现接下来的棋子数量只有3枚,下一轮不够放了。那么我们就先暂停放棋子的步骤,把3这个数字记下来。接下来我们来看每个筐,筐里面的棋子数量还是多得超过我们的符号范围,但是我们可以确定的是,因为每个筐里棋子的数量相同,那么我们就可以根据一个对应关系(例如在每颗棋子上面做标记,然后统计它们进入筐里的顺序)将每颗棋子与其它几个筐里的棋子一一对应起来,这样我们就可以用一个筐里的棋子数目来表示五个筐。于是我们把多出来的3枚棋子和四个筐里的棋子倒出来放到一边,然后把剩下这一筐的棋子拿出来,继续平均放到五个筐里去。分到最后多出来2枚棋子,然后看筐里,运气不错,每个筐里都有1枚棋子,这个数我们就可以用我们的符号来表示了。

      这一系列步骤中我们依次得到了三个数字,3,2和1。这三个数字的意义显然不一样。它们的意义分别是什么呢?

      第一个3表示,对于我们要表示的大数,用五去除,余数是3。第二个2表示,对于上一步得到的商,我们继续用五去除,余数是2。注意这个余数和上一步的3是不同的:这个2代表的不是2枚棋子,而是这枚棋子本身以及它和其它四个筐里与它一一对应的另外四枚棋子,也就是五枚。换言之这个余数代表的意义其实是2×5。最后一个1的意义是,其实如果我们再做一步除法的话,结果是第一轮就结束——筐里没有棋子,然后余数是1。然后这个1对应的,是第二轮中的五枚棋子,以及这五枚棋子在第一轮中所对应的5×5枚棋子。

      实际上我们可以注意到,在每一步除法中,每一枚棋子的意义都不一样。一开始它们只对应自己,再往后它们就对应了多枚棋子。这正是定位计数法的重要特征:数字的意义与其所在的位置有关。对于3,2和1这三个数字,1对应的数最大,其次是2,最后是3。那么我们把它们并排写在一起,然后把我们使用的进制数标记出来,就得到了这堆棋子的数量:(123)_{5}枚。

      我们强调定位计数法是因为有的计数法并不是采用这样的位置关系,典型如罗马数字。

      那么我们有一个用这个表示法表示出来的数字了,我们要怎么还原它的值呢?

      例如十进制下的333,虽然三个都是数字3,但根据我们标记这个数步骤,它们的意义是不同的。最后一个3表示这个数中含有3个10^{0},即找来十个筐投棋子,第一次有3个多出来;第二个3表示这个数中含有3个10^{1};第一个3表示这个数中含有3个10^{2}。那么这个数的大小,就是3 imes10^{2},+,3 imes10^{1},+,3 imes10^{0},=,333。

      为什么是10呢?因为我们这里举的例子是十进制。我们也可以换用别的进制来看看。

      同样是333,现在我们规定这是个七进制下的333,即(333)_{7}。那么这三个数字的意义就改变了。最后一个3表示这个数中含有3个7^{0},第二个3表示这个数中含有3个7^{1},第一个3表示这个数中含有3个7^{2}。于是这个数就是3 imes7^{2},+,3 imes7^{1},+,3 imes7^{0},=,(333)_{7}。之前我们得到的(123)_{5}的意义即1 imes5^{2},+,2 imes5^{1},+,3 imes5^{0},=,(123)_{5}。

      最难的骨头吃掉了下面的就轻松加愉快了。

      进制之间的想互转换,说白了就是上面我们表示以及还原一个数的过程。反复除以进制数,把每一步的余数从大到小列出来,就是新进制下的数。二进制的意思是,我们只有两个筐。也就是说我们分棋子能得到的余数,要么是1,要么是0。也即二进制计数只有0和1两个数字。八进制即0~7。十六进制的话超过了阿拉伯数字的范围,我们就把字母A~F借来。反正这个只是符号而已,它的意义是它背后的数。

      不过值得注意的是,因为2^{3},=,8,2^{4},=,16,所以二进制与八进制、十六进制之间的转换非常方便。把一串二进制数字从后往前三位划为一组,然后把每一组视作进制数的话,这个进制数就是2^{3},=,8。同理从后往前四位一组,每一组就是16。所以我们只要准备一张换算表格,就能在二进制与八进制、十六进制之间快速转换:

      BinOct -------- 0000 0011 0102 0113 1004 1015 1106 1117

八进制的加减运算法则?

      加减法没有产生进位借位的时候,运算与十进制一样。加法若产生进位,高位+1,低位-8;减法若产生借位,高位-1,低位+8。

JAVA8怎么编写简单的加法运算?

      

      Scannerscanner=newScanner(System.in); intx=scanner.nextInt(); inty=scanner.nextInt();

八进制的加减运算法则?

      用八进制进行数值加减法运算,由于数值记数法是八进制。则在此记数法下,每个具体数的各个数位上,均取值在0~7范围内。并且,遵循逢8进位的原则。由以上论述可以知道,八进制的加法遵循逢8进位法则。八进制的减法遵循借位为8法则。并且,加法遵循结合律法则。这就是对问题的回答。

新人999

新人999

TA很懒,啥都没写...

Powered By Z-BlogPHP,Theme By 天兴工作室京ICP备2024087497号-24