将Hex转换为DIN代码

时间:2016-08-18 08:27:31

标签: c++

我想将HEX代码转换为DIN ZK-Code。计算如下图所示。 十六进制代码转换为二进制代码。之后,它将按字节顺序反转并以半字节方式转换为DEC。 我这里有问题。尽管我会对此做出解决方案,但它仍然会非常无效。也许你可以给我一些提示,看看哪些功能。

enter image description here

2 个答案:

答案 0 :(得分:1)

第1步:读入代码

您可以将所有字符读入std::string,以便您拥有包含"010C2E24DC"的字符串。然后,您可以将其拆分为多个std::string的两个字符,每个字符使用std::string接口表示一个字节。

第2步:转换为字节

您可以使用std::stringstream将字符串转换为数字,就像您可以使用std::cin从控制台读取数字一样。使用单个&#34;字节字符串填充std::stringstream&#34;每次使用std::hexoperator<<,然后使用operator>>将其解析为无符号字符。

第3步:位移

使用二元运算符的组合(例如shift(&lt;&lt;&gt;&gt;)和(&amp;),或(|))来反转每个unsigned char中的位的顺序。

步骤4:分成半个字节

再次,使用二元运算符的组合将位反转的无符号字符转换为半字节。

第5步:转换回字符串

您可以使用std::stringstream(或直接输出到std::cout),将数字流式传输到其中,然后将其转换为文本。您可能希望查看std::setw以添加零填充。

答案 1 :(得分:1)

我会按照Peter提出的建议行事。

Policy,Schedule Type,Retention Level,Host
FS-Win-Servers-Tokyo-DACS_ONLY,,,
,FULL (0),,
,,infinity (9),
,,,opback03e.options-it.com
DB-Win-Exch2013-ADB11,,,
,INCR (1),,
,,6 months (6),
,,,opback03e.options-it.com
DB-Win-Exch2013-MDB11,,,
,INCR (1),,
,,6 months (6),
,,,opback03e.options-it.com
DB-Win-Exch2013-MDB10,,,
,INCR (1),,
,,6 months (6),
,,,opback03e.options-it.com