十进制,比如6,将它转换成二进制数。 结果是 等于二进制的110
被除数          计算过程           商           余数 
6                  6/2              3              0 
3                  3/2              1              1 
1                  1/2              0              1 
最后一步为什么1/2 的余数是1 ?---------------------------------------------------------------------------------
十进制数120转换成八进制数。 结果120等于 八进制  170被除数                计算过程                商               余数 
120                     120/8                 15                0 
15                       15/8                  1                7 
1                         1/8                  0                1 最后一步为什么 1/8 余数是  1 ?------------------------------------------------------------------------------------同样是120,转换成16进制  结果为 78被除数                   计算过程             商              余数 
120                        120/16             7                 8 
7                           7/16              0                 7 同样, 为什么 7/16 余数是17 ?????  有什么计算方法吗? 还就是 余数就是等于除数? 计算的时候有什么规律吗? 或者类似四舍五入的方式?

解决方案 »

  1.   

    不用这么复杂吧?
    同意.
     tiaoci(我挑刺,我快乐) (这样想就行了.
      

  2.   

    int除int,默认答案自然也必须是int.如果想要小数,全部定义成float就好了。
      

  3.   

    hehe, 整除大于自己的数,当然余下是自己
      

  4.   

    1) 1/2,商为 0.5,余数为 0;1/8,商为 0.125,余数为 0;
    2) 1/2,商为 1,余数为 -1;1/8,商为 1,余数为 -7;
    3) 1/2,商为 0,余数为 1;1/8,商为 0,余数为 1。不要想当然地认为 1/2 = 0.5, 1/8 = 0.125,商就是 0.5 和 0.125 了,得到的结果都应为整数,所以都向下取整为 0,而余数为 1。学过计算机原理就知道了:
    1) 的情况只有“人”才能一次得出结果(心算),但是电脑不会心算,电脑只认识两个二进制数 0 和 1;
    2) 看起来有点荒谬,但也说得通,为什么?钻牛角尖呗 >_<
    3) 这个才是对电脑来说最容易算出来的结果。
    另外,从存储角度上来看,存储商0和余数1,比存储商0.5和余数0,或商1余数-1要占用更少的空间。总而言之,请楼主回去把计算机原理的课补补吧。int i1 = (int) 1/2; int i2 = 1 % 2;
    int j1 = (int) 1/8; int j2 = 1 % 8;
    int k2 = (int) 7/8; int k2 = 7 % 8;