在给定数量的(hexa)数字上,负数的二进制补码表示

时间:2012-06-01 09:23:42

标签: ruby

在Ruby中,如何在给定数量的(hexa)数字上得到负数的干净二进制补码六进制表示?

我已经知道:

irb(main):003:0> a=-7
=> -7
irb(main):005:0> str = "0x" << sprintf("%X",x)
=> "0x..F9"

然后我还需要

  1. 压制“..”
  2. 必要时传播“F”
  3. 有没有合适的成语?

    JCLL

1 个答案:

答案 0 :(得分:3)

当数字为负数时,自己做减法怎么样:

sprintf("%#X",16**digits-7)