我想将HEX代码转换为DIN ZK-Code。计算如下图所示。 十六进制代码转换为二进制代码。之后,它将按字节顺序反转并以半字节方式转换为DEC。 我这里有问题。尽管我会对此做出解决方案,但它仍然会非常无效。也许你可以给我一些提示,看看哪些功能。
答案 0 :(得分:1)
第1步:读入代码
您可以将所有字符读入std::string
,以便您拥有包含"010C2E24DC"
的字符串。然后,您可以将其拆分为多个std::string
的两个字符,每个字符使用std::string
接口表示一个字节。
第2步:转换为字节
您可以使用std::stringstream
将字符串转换为数字,就像您可以使用std::cin
从控制台读取数字一样。使用单个"字节字符串填充std::stringstream
"每次使用std::hex
和operator<<
,然后使用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