在Scheme中将字节字符串转换为Int

时间:2009-10-20 21:52:22

标签: algorithm scheme byte bytestring

我有这样的代码将十六进制转换为字节字符串

(define (word->bin s)
  (let ((n (string->number s)))
    (bytes (bitwise-and (arithmetic-shift n -24) #xFF)
    (bitwise-and (arithmetic-shift n -16) #xFF)
    (bitwise-and (arithmetic-shift n -8) #xFF)
    (bitwise-and n #xFF))))
(word->bin "#x10000002")

我正在考虑将二进制转换为整数的类似函数,然后打印它。最终结果是二进制转换为十六进制。一些有用的链接: http://download.plt-scheme.org/doc/372/html/mzscheme/mzscheme-Z-H-11.html#node_sec_11.2.1

http://docs.plt-scheme.org/reference/bytestrings.html#(def.((quote.~23~25kernel)._bytes-~3estring/utf-8))

1 个答案:

答案 0 :(得分:4)

我不确定这是您正在寻找的,或者即使您正在使用PLT,但如果您这样做,那么您应该查看integer-bytes->integer和{{ 1}} PLT中are included的函数。请注意,这些创建了带有二进制内容的字节字符串 - 因此它可能与您在此处尝试的内容不同。

(如果您使用的是版本372,那么您应该真正升级。)