仅使用:
! ~ & ^ | + << >>
我需要找出一个带符号的32位整数是否可以表示为16位,2的补码整数.
我的第一个想法是分离MSB 16位和LSB 16位,然后使用掩码和最后16位,所以如果它不为零,它将无法表示,然后使用该数字来检查MSB位.
我需要编写的函数示例是:fitsInShort(33000)= 0(无法表示)和fitsInShort(-32768)= 1(可以表示)
c integer bit-manipulation
bit-manipulation ×1
c ×1
integer ×1