unsigned value( unsigned n, unsigned low, unsigned high ){
if( !(low <= high && high <= 32) ) exit(EXIT_FAILURE);
if( low == 0 && high == 32 )
return n;
else
return n >> low & (1U << (high-low)) - 1;
}
想象一下,我们有以下 n=11100011、low=2 和 high=7。
当我们到达退货声明时,我已经有了这个
00111000 & (00100000 - 00000001)
这将是
00111000 & 00011111
这将等于
00011000
但这不对吧?那是 24 而我想要 00111000 是 56
我在这里做错了什么?我在哪里搞砸了?