給予兩個數 x 和 y ,如果 x<=y 則回傳 1 ,否則回傳 0 。
其中x和y都是int型的整數,要求只能用 ! ~ & ^ | + << >>這些運算子,最多使用24個運算子。
且只能使用順序結構,不能使用if,while,for等,不能呼叫任何函式,不能使用強制型別轉換。
uj5u.com熱心網友回復:
return (((a - b) >> 31) & 0x1)|(!(a^b))uj5u.com熱心網友回復:
-如果不讓用,看一下電路里面的減法器,都是位運算。uj5u.com熱心網友回復:
!((y+(~x+1))>>31)uj5u.com熱心網友回復:
return x <= y;uj5u.com熱心網友回復:
直接return x <= y ? 1 : 0;
就是最簡單的。
所以沒必要用 ! ~ & ^ | + << >> 這些運算子
uj5u.com熱心網友回復:
我覺得3樓大佬的式子非常正確先構造出減法,再構造出大于0的運算式
uj5u.com熱心網友回復:
很多人沒注意到2個問題1 int 未必是32bit
2 相等也要回傳1
uj5u.com熱心網友回復:
不是沒必要用這些,是只能用這些,你用的小于號和結構都是禁用的轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/78820.html
標籤:C++ 語言
上一篇:請教各位大佬,這個問題:文本后綴“,c1”無效;未找到文文本運算子或文本運算子模板“operator """",c1”
