问题描述
- APUE(版3) 例8.28 会计进程,第31,32行怎么解释?
-
格式转换部分,comp_t to unsigned long 24 #if !defined(BSD) 25 static unsigned long 26 compt2ulong(comp_t comptime) /* convert comp_t to unsigned long */ 27 { 28 unsigned long val; 29 int exp; 30 31 val = comptime & 0x1fff; /* 13-bit fraction */ 32 exp = (comptime >> 13) & 7; /* 3-bit exponent (0-7) */ 33 while (exp-- > 0) 34 val *= 8; 35 return(val); 36 } 37 #endif 38
解决方案
31行,取得这个数二进制低13位。
32行,取得这个数的高3位。
低位表示位数,高位表示指数。
时间: 2024-11-02 02:11:14