我有这段代码:
int a = 3, b = 2;
(a/b) << 3 ;
a/b
如何转移?我怎样才能用二进制表示分数?
答案 0 :(得分:5)
(a / b)不会被转移。 它将评估表达式(a / b)int / int可能是一个int,然后它将被移位。
(a/b) << 3
(3/2) << 3 //integer divided by an integer will gives you an integer, So you will get 1
(1) << 3 // 1 will get left shifted with 3 bits
8
答案 1 :(得分:3)
由于3 / 2
为1
,答案只是8
,即1×2 3 。
答案 2 :(得分:2)
1)整数和浮点都是“二进制”表示。 从这个意义上说,“表示分数”的一种方法是使用浮点数很简单。
2)用整数表示分数的一种有效方法是使用整数的对:一个用于你的分子,另一个用于你的除数:
http://en.wikipedia.org/wiki/Fraction_%28mathematics%29
3)然而第三种选择是使用定点整数算法