如何確定負數FixNum的無符號解釋?無符號等價負數FixNum
# unexpected, true
(~0b01111011).to_s(2) == ("-" + (~0b01111011).abs.to_s(2))
# expected, false
~0b01111011 == 0b10000100
我怎麼會寫一個函數,即:
123.unsigned_not(8) == 132
或者:
-124.unsigned(8) == 132
編輯:我可以通過串做到這一點,但解決的辦法是遠遠不能滿足
class Fixnum
def unsigned_not(bits=16)
to_s(2).rjust(bits,'0').gsub(/[01]/, '0' => '1', '1' => '0').to_i(2)
end
end
嗯我非常喜歡這個方向,但你比較的結果是錯誤的 – jchook