㈠ 二进制转换成十进制(除10取余法)
我一开始也很不理解,我想不通的地方在于2怎么能除以10呢,后来类比10进制数也能除以16,23,这类数,所以这里的除十取余的“十”指的是二进制里的10,即(1010)B,不知道我的理解能否帮到你
㈡ 二进制除法怎么算急啊!!!
在十进制中,从十位借一位到个位,用在个位减的时候,就是10+个位上的数,二进制,从十位借一位到个位,用在个位减的时候,就是2+个位上的数。
定点数(整数),那就舍掉了。是浮点数,则继续加位运算,直到精度达到后舍掉。
比如说:101-11,个位够减,为0,十位不够,从百位上借1,所以十位就为2,被减数十位-减数十位,为2-1=1,所以结果为10。
除法就是移位相减 99/5,先1100011 - 1010000 = 10011(其中二进制1010000 = 5乘2的4次幂)
再10011 - 1010 = 1001 ( 其中二进制1010 = 5乘2的1次幂) ,再1001 - 101 = 100( 其中二进制101 = 5乘2的0次幂) ,最后得到商为2^4+2^1+2^0 = 16+2+1=19(^代表次幂) ,余数为二进制100 = 4
㈢ 二进制转十进制,十进制转二进制的算法(求助)
二进制转换为十进制:
方法:“按权展开求和”,该方法的具体步骤是先将二迸制的数写成加权系数展开式,而后根据十进制的加法规则进行求和 。
规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依次递增,而十分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。
十进制转换为二进制:
一个十进制数转换为二进制数要分整数部分和小数部分分别转换,最后再组合到一起。
整数部分采用 "除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
小数部分要使用“乘 2 取整法”。即用十进制的小数乘以 2 并取走结果的整数(必是 0 或 1),然后再用剩下的小数重复刚才的步骤,直到剩余的小数为 0 时停止,最后将每次得到的整数部分按先后顺序从左到右排列即得到所对应二进制小数。
通用进制转换:
不同进制之间的转换本质就是确定各个不同权值位置上的数码。转换正整数的进制的有一个简单算法,就是通过用目标基数作长除法;余数给出从最低位开始的“数字”。
(3)二进制除10取余算法扩展阅读:
1、十进制整数转二进制整数:
十进制整数转换为二进制整数 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
2、十进制小数转换为二进制小数:
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
参考资料:网络-二进制
㈣ 二进制与10相除余数的问题
余数 = 4
0x10111 = 65809,
左移20位,相当于乘以1048576,其最末位是4。
--------------------
左移一个二进制位,相当于乘以2;
左移二个二进制位,相当于乘以4;
左移20位,就相当于乘以1048576。
乘以1048576,不用全算,
只用末尾的6,乘以65809末尾的9,得到54,即可知道本题的结果了。
--------------------
楼主提到这是笔试题目,从这个出发点来看,原始数据0x10111不像是16进制数字。如果是16进制,计算起来较难,不适宜做为考试题目。
原始数据0x10111,如果没有“0x”在里面,极像二进制数。
如果是二进制数,就是十进制的23。
其它步骤,按照上述介绍计算,余数就 = 8。
--------------------
楼主提到:“笔试的人不可能让我去算左移20位是1048576吧?”
其实,左移10位,就是2的10次方,等于1024,这应该算是常识。
2的10次方,等于1024×1024,末尾数字是6,并不是难为考生。
用这个6,乘以原始数据的末位数,马上就得出结果,这应该是个很简单的题目。