gpt4 book ai didi

ocaml - 如何在OCaml中的十六进制,八进制,十进制和二进制之间转换数字?

转载 作者:行者123 更新时间:2023-12-04 13:51:49 25 4
gpt4 key购买 nike

在OCaml中,十六进制,八进制和二进制之间转换数字的一般方法是什么?

例如,如何将十六进制4294967276(FFFFFFFC)转换为十进制数?

谢谢!

缺口

最佳答案

目前尚不清楚您要问什么。数字只是数字,真的。它们没有基础(忽略硬件表示)。拥有基础的时间就是将数字与字符串进行相互转换的时间。要将字符串解释为十进制整数,可以使用int_of_string。对于其他基础,您可以使用Scanf.sscanf。要将数字转换为十进制字符串,可以使用string_of_int。对于其他基础,您可以使用Printf.sprintf

# int_of_string "345";;
- : int = 345
# Scanf.sscanf "FC" "%x" (fun x -> x);;
- : int = 252
# string_of_int 345;;
- : string = "345"
# Printf.sprintf "%X" 252;;
- : string = "FC"
#

当然, Scanf.sscanf使用起来很麻烦。但是我不知道OCaml标准库中的任何其他转换函数。

更新

正如barti_ddu所观察到的,如果您不介意在输入字符串中添加前缀,则可以对提到的所有4种碱基使用 int_of_string:
# int_of_string "0xFC";;
- : int = 252
# int_of_string "0o374";;
- : int = 252
# int_of_string "0b11111100";;
- : int = 252

(或者您的输入可能已经带有前缀,在这种情况下,这是一个简单得多的解决方案。)

关于ocaml - 如何在OCaml中的十六进制,八进制,十进制和二进制之间转换数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15524450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com