【问题标题】:How to convert binary to hex code digit-wise如何将二进制数字转换为十六进制代码
【发布时间】:2015-08-01 18:13:19
【问题描述】:

在 C++ 中,我有四个二进制数存储在四个 strings 中,假设: string s1="1010", s2="1011", s3="0100", s4="0011"; 或直接存储为ints:int i1=10, i2=11, i3=4, i4=3;

我不知道哪种情况会导致更好的解决方案,这就是我想澄清的原因,我可以从两者开始。

现在我想做的如下。将上述值转换​​为十六进制值并将它们以数字方式存储在一个字符串中:string hex_result="AB43";(如1010=10=A1011=11=B0100=4=40011=3=3)。之后我需要hex_result 描述的实际值,即:int value = 43843;(如AB43=43843)。

我知道我可以通过将二进制值直接评估为一个字符串"1010101101000011" 来实现这一点,但我需要从单个二进制字符串中获取十六进制代码,因此如上所述。

【问题讨论】:

    标签: c++ binary hex


    【解决方案1】:

    除了@Amit 的响应之外,这也将起作用:

    int i1=10, i2=11, i3=4, i4=3;
    char result[5];
    sprintf(result,"%x%x%x%x\n", i1,i2,i3,i4);
    

    由于二进制到十六进制转换的性质,这消除了位移,但产生了相同的结果。

    【讨论】:

      【解决方案2】:

      int的开头:

      int i1=10, i2=11, i3=4, i4=3;
      int value = (i1<<12) + (i2<<8) + (i3<<4) + i4;
      char hex_result[5];
      sprintf(hex_result, "%X", value);
      

      应该可以...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-01
        • 2012-06-26
        • 2015-08-03
        • 2013-02-19
        • 1970-01-01
        • 2016-08-28
        相关资源
        最近更新 更多