【问题标题】:how to set C/C++/Rust compiler default decimal number base to hexadecimal base? [closed]如何将 C/C++/Rust 编译器默认十进制数基数设置为十六进制基数? [关闭]
【发布时间】:2020-09-22 00:11:38
【问题描述】:

似乎十六进制数字对 c/c++/rust iot 编程很有用。下面是支持十六进制数字的图像。

我正在寻找 rust 编译器,其中十六进制是整数 float 的默认基数。 ascii_510(5+5=10) --> hskii_810(8+8=10=4X4)

int10 a = 484;乙 // ascii_510 rust 中的上述行将如下所示: int16 a = 0x484B ; 因此,请提供提示如何以及更改 rust 源中的哪些文件。

【问题讨论】:

    标签: c++ rust compiler-construction ascii compiler-development


    【解决方案1】:

    您可以通过在整数前面加上 0x 来使用十六进制数字:

    fn main() {
        println!("{}", 0x44);
    }
    

    Playground.

    使用十六进制对浮点数没有意义,因为您要么想要设置位(应该使用特殊函数完成,请参阅this question),要么编写带有小数点的十六进制数字,例如F3.2A

    编译器不支持后者,尽管很可能有一些板条箱支持它。如果没有最好的方法是使用 proc 宏来计算十进制等值并计算出正确的数字。

    【讨论】:

    • 是的,它似乎是函数:string atoh(ascii_510_string);是不错的选择。
    • 没有内置方法可以将带小数位的十六进制数转换为浮点数,不太可能添加到编译器中。如果它真的很重要,我会通过 RFC 运行它,然后可以根据社区的需求来决定它。但是,使用 proc 宏会很有意义,根据传入的文字计算数字然后吐出数值会相对容易。
    猜你喜欢
    • 2023-03-08
    • 2013-03-18
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    相关资源
    最近更新 更多