除r取余,乘r取整的原理是什么?
展开全部
要以十进制的思想来理解。如: 3333.333, 同样的3,在不同的位置表示的值是不同的,连续两位相差10倍。这叫做“权”,十进制的权就是10。 向左(整数部分)依次递增, 向右依次递减(小数部分)。
个位数(记作0位)的权为 10^0=1
十位数(记作1位)的权为 10^1=10
。。。
小数点后第一位(10分位,也可看作-1位)的权为10^-1
小数点后第二位(100分位,也可看作-2位)的权为10^-2
。。。
这样, 1234.56 = 1*10^3 + 2*10^2 + 3*10^1 + 4*10^0 + 5*10^-1 + 6*10^-2
对整数部分来说,要取出个位数,只需把1234除10取余,即得4, 商=123,
再除10取余,得百位数3,商=12, (相当于原数除百)
。。。
用除10取余依次可得个,十,百,千位的数(次序是从低到高的)。
同样,对小数部分来说,就要用乘10取整来处理了。
0.56 乘10, 得5.6,取出5, 剩0.6,
再乘10,得6,(相当于0.06 乘 100)。
同样的原理用到二进制上,权以2为基,不同位置的权就变成:
个位数 2^0=1,向左依次递增,2^1=1,2^2=4, 2^3=8, ..., 向右依次递减1/2, 1/4, 1/8 ...
个位数(记作0位)的权为 10^0=1
十位数(记作1位)的权为 10^1=10
。。。
小数点后第一位(10分位,也可看作-1位)的权为10^-1
小数点后第二位(100分位,也可看作-2位)的权为10^-2
。。。
这样, 1234.56 = 1*10^3 + 2*10^2 + 3*10^1 + 4*10^0 + 5*10^-1 + 6*10^-2
对整数部分来说,要取出个位数,只需把1234除10取余,即得4, 商=123,
再除10取余,得百位数3,商=12, (相当于原数除百)
。。。
用除10取余依次可得个,十,百,千位的数(次序是从低到高的)。
同样,对小数部分来说,就要用乘10取整来处理了。
0.56 乘10, 得5.6,取出5, 剩0.6,
再乘10,得6,(相当于0.06 乘 100)。
同样的原理用到二进制上,权以2为基,不同位置的权就变成:
个位数 2^0=1,向左依次递增,2^1=1,2^2=4, 2^3=8, ..., 向右依次递减1/2, 1/4, 1/8 ...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询