如何将二进制转换为十六进制代码
How to convert binary to hex code digit-wise
在c++中,我有四个二进制数存储在四个strings
中,比方说:string s1="1010", s2="1011", s3="0100", s4="0011";
OR直接存储为int
s: int i1=10, i2=11, i3=4, i4=3;
.
我不知道哪种情况会导致更好的解决方案,这就是为什么我想澄清,我可以从两种情况开始。
现在我想做的是如下所示。将上述值转换为十六进制值,并将它们按数字存储在一个字符串中:string hex_result="AB43";
(如1010=10=A
, 1011=11=B
, 0100=4=4
, 0011=3=3
)。之后,我需要hex_result
描述的实际值,这是:int value = 43843;
(作为AB43=43843
)。
我知道我可以通过将二进制值直接评估为一个字符串"1010101101000011"
来实现这一点,但我需要从单个二进制字符串中获得十六进制代码,因此如上所述。
除了@Amit的响应,下面也可以:
int i1=10, i2=11, i3=4, i4=3;
char result[5];
sprintf(result,"%x%x%x%xn", i1,i2,i3,i4);
这消除了位移位,但由于二进制到十六进制转换的性质,产生了相同的结果。
从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);
应该工作…
相关文章:
- 如何在openssl-ecc中获取十六进制格式的私钥
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- C ++如何使用UTF8十六进制代码打印UTF8符号?
- 发送和十六进制消息时套接字代码C++问题
- 理解此代码(将十六进制直接写入文件-midi)
- C++中的十进制到十六进制转换代码
- 用十六进制表示法编写代码有什么意义
- 是否可以使用十六进制编辑器从exe文件中删除代码?(c++)
- 为什么该函数以相反的顺序显示十六进制代码
- 在一行代码中输入2个十六进制数字和一个字符串
- 如何将十六进制代码值转换为unicode字符
- 将C#代码转换为C++:将十六进制转换为二进制
- 用于检查整数是否包含给定十六进制模式的c++代码
- 用 C++ 打印十六进制代码,但只打印"g"
- 将十六进制代码格式化为asm代码
- 如何将二进制转换为十六进制代码