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 = 1110011、low = 2、high=7として次のようになっていると想像してください。
リターンステートメントに到達するまでに、私はこれを持っているでしょう
00111000&(00100000-00000001)
これは
00111000&00011111
等しいだろう
00011000
しかし、それは正しくありませんか?56である00111000が欲しいのにそれは24です
私はここで何を間違っているのですか?どこで失敗したの?