【问题标题】:Converting from string to hex and subtracting从字符串转换为十六进制并减去
【发布时间】:2015-06-24 00:44:58
【问题描述】:

我正在尝试从文件中提取两个十六进制字符串,将它们转换为整数,然后减去:

reg_one = line.strip
reg_one_addr = reg_one[reg_one.index('0x')+2...-1].hex  
puts reg_one_addr  

reg_two = line.strip  
reg_two_addr = reg_two[reg_two.index('0x')+2...-1].hex  
puts reg_two_addr  

diff = reg_two_addr - reg_one_addr  

执行此操作时出现错误:

`-': nil can't be coerced info Fixnum (TypeError) 

我尝试从hex 转到to_i(16),他们都做同样的事情。我在转换它们后打印出这些值,它们是正确的。我迷路了。

谁能帮帮我?

【问题讨论】:

    标签: ruby string hex


    【解决方案1】:
    reg_one_addr, reg_two_addr =
    [reg_one, reg_two].map{|s| s.sub(/.*(?=0x)/, "").hex}
    

    【讨论】:

      【解决方案2】:
      [reg_one, reg_two].map{|s| eval(s).to_i}.reduce(:-)
      

      【讨论】:

        猜你喜欢
        • 2010-10-18
        • 1970-01-01
        • 2018-01-31
        • 2013-02-07
        • 1970-01-01
        • 2018-01-22
        • 1970-01-01
        • 2017-06-16
        相关资源
        最近更新 更多