采用txt文件读写方式进行,将16进制字符串转换为2进制字符串

这篇博客介绍了如何从包含16进制数的txt文件中提取数值,并使用C++将这些16进制数转换成2进制字符串,再写入新的txt文件。示例内容包括LDPC生成矩阵中的16进制数据转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有一个存储16进制字符串(除了16进制数之外还有其他内容)的txt文件:
1.提取16进制数,写入到txt文件中;
2.提取出来的16进制数转换为2进制字符串,并写入到txt文件中。

比如,原txt文件内容如下所示,要将其中的16进制数提取出来,并将其转换为2进制存入文件之中。
// ---- --------------------- ---- //
// Generator Matrix for LDPC (1280,1024) //
// ---- --------------------- ---- //
// ---- SuperColumn 1 ---- //
GM3_R1_C1 = 32’h4569b8f3,
GM3_R2_C1 = 32’h523726a1,
GM3_R3_C1 = 32’hf4e0049b,
GM3_R4_C1 = 32’h1c043435,
GM3_R5_C1 = 32’h9963415c,
GM3_R6_C1 = 32’h5695275d,
GM3_R7_C1 = 32’h437cc0a1,
GM3_R8_C1 = 32’h912a3bc8,
GM3_R9_C1 = 32’h482bf8a9,
GM3_R10_C1 = 32’he6f283ec,
GM3_R11_C1 = 32’hd3fc6890,
GM3_R12_C1 = 32’hbaee7dde,
GM3_R13_C1 = 32’hf21b2779,
GM3_R14_C1 = 32’h20f631d7,
GM3_R15_C1 = 32’h0fdb2a7b,
GM3_R16_C1 = 32’he1daeaae,
GM3_R17_C1 = 32’hc7a09bb3,
GM3_R18_C1 = 32’h4662aee9,
GM3_R19_C1 = 32’h30d5fe05,
GM3_R20_C1 = 32’hb384e075,
GM3_R21_C1 = 32’h5e88852a,
GM3_R22_C1 = 32’h39bfbf8c,
GM3_R23_C1 = 32’h3430f8ac,
GM3_R24_C1 = 32’hcd2e01ff,
GM3_R25_C1 = 32’h5cc50bef,
GM3_R26_C1 = 32’hd01dd21b,
GM3_R27_C1 = 32’h284ff145,
GM3_R28_C1 = 32’h7b2b80ab,
GM3_R29_C1 = 32’h27220d57,
GM3_R30_C1 = 32’h5c2dd82b,
GM3_R31_C1 = 32’h07fbfcbb,
GM3_R32_C1 = 32’h7a9fbfa6,
// ---- SuperColumn 2 ---- //
GM3_R1_C2 = 32’h9d5c20bf,
GM3_R2_C2 = 32’hc3c2d8fc,
GM3_R3_C2 = 32’h63029293,
GM3_R4_C2 = 32’hea38302b,
GM3_R5_C2 = 32’h2df43901,
GM3_R6_C2 = 32’h68f496d4,
GM3_R7_C2 = 32’h29e77616,
GM3_R8_C2 = 32’h737c1d0b,
GM3_R9_C2 = 32’h15625165,
GM3_R10_C2 = 32’h6bb52743,
GM3_R11_C2 = 32’h7b28d6a8,
GM3_R12_C2 = 32’h322fa027,
GM3_R13_C2 = 32’h2ca10e6f,
GM3_R14_C2 = 32’h7640119c,
GM3_R15_C2 = 32’ha0fea7fc,
GM3_R16_C2 = 32’h5b3079bc,
GM3_R17_C2 = 32’h20f3faa9,
GM3_R18_C2 = 32’h49b41b82,
GM3_R19_C2 = 32’h44e8b7a5,
GM3_R20_C2 = 32’habf6668c,
GM3_R21_C2 = 32’h040b69b7,
GM3_R22_C2 = 32’hb6563006,
GM3_R23_C2 = 32’ha6a5f7d1,
GM3_R24_C2 = 32’hf250511d,
GM3_R25_C2 = 32’hafaffb7a,
GM3_R26_C2 = 32’h0a93bab3,
GM3_R27_C2 = 32’hc01bb87f,
GM3_R28_C2 = 32’h3054a2c7,
GM3_R29_C2 = 32’h4ca153b4,
GM3_R30_C2 = 32’h84368bb7,
GM3_R31_C2 = 32’h47e9f4f0,
GM3_R32_C2 = 32’h576e3087,
// ---- SuperColumn 3 ---- //


实现的代码如下,其中函数string hex2bin(const string& hex);
是在GitHub上找到的,当时直接复制过来的,具体链接忘记在哪里了。
/////////////////////////////////////////////

引用文本


#include "stdafx.h"
#include <iostream>
#include <string>
#include <stdexcept>
#include <vector> 
#include <string> 
#include <fstream> 

using namespace std;

string hex2bin(const string& hex);

string hex2bin(const string& hex)
{
   
   
	string bin;
	std::string::const_iterator itr = hex.begin();

	while (itr != hex.end()) {
   
   
		switch (*itr) {
   
   
		case '0':
			bin += "0000";
			break;
		case '1':
			bin 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值