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

发布于 2024-08-08 04:45:33 字数 865 浏览 4 评论 0原文

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

(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://下载。 plt-scheme.org/doc/372/html/mzscheme/mzscheme-ZH-11.html#node_sec_11.2.1

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

I have code like this to convert hex into byte string

(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")

I'm thinking of a similar function to convert binary into integers, then print it. The end result is the binary translated to hex. Some helpful links:
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))

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

束缚m 2024-08-15 04:45:33

我不确定这是否是您要寻找的,或者即使您正在使用 PLT,但如果你这样做,那么你应该看看 包含在 PLT 中。请注意,这些创建具有二进制内容的字节字符串 - 因此它可能与您在此处尝试执行的操作不同。

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

I'm not sure that this is what you're looking for, or even if you're using PLT, but if you do, then you should look at the integer-bytes->integer and integer->integer-bytes functions that are included in PLT. Note that these create byte strings with binary content -- so it might be different than what you're trying to do here.

(And if you're using version 372, then you should really upgrade.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文