【发布时间】:2011-09-07 16:44:21
【问题描述】:
仅使用:
! ~ & ^ | + << >>
我需要确定一个带符号的 32 位整数是否可以表示为 16 位二进制补码整数。
我的第一个想法是将 MSB 16 位和 LSB 16 位分开,然后对最后 16 位使用掩码,因此如果它不为零,则无法表示,然后使用该数字检查MSB 位。
我需要写的函数的一个例子是:fitsInShort(33000) = 0(不能表示)和fitsInShort(-32768) = 1(可以表示)
【问题讨论】:
标签: c integer bit-manipulation