仅使用以下内容:
! ~ & ^ | + << >>
我需要找出一个有符号的 32 位整数是否能表示为一个 16 位的带符号整数(two's complement integer)。
我的第一个想法是将 MSB 的 16 位和 LSB 的 16 位分开,并使用掩码对最后的 16 位进行 AND 运算。如果结果不为零,它就无法被表示,并使用该数字检查 MSB 位。
需要编写的函数示例为:fitsInShort(33000) = 0(无法表示),fitsInShort(-32768) = 1(可以表示)。
&&
,||
)。 - Oliver Charlesworth&&
或||
)。 - Oliver Charlesworth