十进制,比如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 ????? 有什么计算方法吗? 还就是 余数就是等于除数? 计算的时候有什么规律吗? 或者类似四舍五入的方式?
被除数 计算过程 商 余数
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 ????? 有什么计算方法吗? 还就是 余数就是等于除数? 计算的时候有什么规律吗? 或者类似四舍五入的方式?
同意.
tiaoci(我挑刺,我快乐) (这样想就行了.
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;