如果ASCII为大写,如何返回1

时间:2016-02-08 23:58:08

标签: c

如果x在0x41和0x5a之间,则必须返回1(ascii为&#39; A&#39;到&#39; Z&#39;)。仅允许按位运算符(&^|<<>>!),以及+isupper。像saveToDB()这样的库函数不是。

我很感激任何提示或帮助,因为我了解哪些范围有效,但我不知道如何操纵它以返回给定的操作符。

1 个答案:

答案 0 :(得分:1)

提示1 - 可以通过添加负数来完成减法。

提示2 - 可以使用按位运算符进行否定:-n == ~n+1

提示3 - 右移 n 的非负数相当于除以2 n n>>1 == n/2n>>2 == n/4