This question already has answers here:
Testing if an integer is an uppercase ASCII letter using bit manipulation
(4个答案)
4年前关闭。
如果x在0x41和0x5a之间(从'A'到'Z'的ascii),我必须返回1。仅允许按位运算符(
我将不胜感激任何提示或帮助,因为我了解哪些范围有效,但是我不知道如何使用给定的运算符来操作它以返回1。
(4个答案)
4年前关闭。
如果x在0x41和0x5a之间(从'A'到'Z'的ascii),我必须返回1。仅允许按位运算符(
~
,&
,^
,|
,<<
,>>
)以及!
和+
。像isupper
这样的库函数不是。我将不胜感激任何提示或帮助,因为我了解哪些范围有效,但是我不知道如何使用给定的运算符来操作它以返回1。
最佳答案
提示1-减法可以通过加上负数来完成。
提示2-可以使用按位运算符-n == ~n+1
取反。
提示3-将非负数右移n等于除以2n:n>>1 == n/2
,n>>2 == n/4
等。
09-27 20:58