Linux kernel中出现的int_to_frac()的意义什么?

在linux kernel的源代码中有用到int_to_frac()和frac_to_int()函数,如下所示

#define FRAC_BITS 10
#define int_to_frac(x) ((x) << FRAC_BITS)
#define frac_to_int(x) ((x) >> FRAC_BITS)

由代码可看出,作用是将x左/右移10个bit,即乘以1024(2^10)或除以1024。
那么,这种运算的实际意义是什么?仅仅是把数字变大或缩小吗?
另外,这个frac指的是哪个英文单词?fraction?

以上疑问,有没有大佬帮忙解答一下,谢谢。

就是让x在二进制中抹掉右边的多少位或者在右边加多少个0。
举个例子:x=11,那二进制就是1011,那 << 2 就是 101100 (就是在右边加上两个 0 ),就相当于 * (2^2)
那 >> 2 就是 10 (就是把右边的最后两位 "11" 不要),就相当于 /(2^2) 。(这里的 / 是整除)

我们就可以利用这个东西做一些位运算的操作,比如把x在二进制中的某一位变成0或者1,取出 x 在二进制中的第 i 位到第 j 位,等等

frac好像是分数的意思

估计是用来计算1M=?K 1K=?B 之类的。