将long-long的数组转换为字符串
convert array of long long into string
在c中++我有一个带符号的长-长(63位数字)数组,可变长度数组。
std::array<long long, n> encodedString
这个数组实际上包含一个UTF-8编码的字符串。这意味着,如果连接数组中每个元素的二进制文件,结果将是UTF-8编码的文本。
例如阵列:
(621878499550 , 2339461068677718049)
如果你把那些有符号的long-long翻译成63位二进制,它会给出:
621878499550=00000000000000000000000 1001000011001010110110001101100011011110
2339461068677718049=0100000011101110110111100100110111001000010000000100001
如果将这些二进制文件连接到:00000000000000000000000 100100001100101011011000110111011110010000001110110111100100110111001000010000000100001
这是"你好,世界!"的UTF8
因此,问题是,从数组(621878499550、2339461068677718049)开始,获得"Hello world!"字符串的最简单方法是什么
我目前的最佳解决方案是以二进制模式(fwrite)将数组写入文件,然后以文本模式将文件读取为字符串。
使用位集将long-long转换为二进制和字符串流,以流式传输
#include <sstream>
#include <iostream>
#include <bitset>
#include <array>
int main()
{
std::array<long long, 2> array = { 621878499550 , 2339461068677718049ll };
std::stringstream ss;
for (auto& n : array)
{
ss << std::bitset<64>(n);
}
std::cout << ss.str() << std::endl;
}
输出0000000000000000000000010010000110010101101100011011000110111100010000001110111011011110111001001101100011001000010000000100001
试试这个
// 48 & 56 were to avoid the extra padding made when you use 64 bitset but i think thats what you are looking for
std::string binary = std::bitset<48>(114784820031264).to_string();
std::string binary2 = std::bitset<56>(2339461068677718049).to_string();
binary += binary2;
std::stringstream sstream(binary);
std::string output;
while (sstream.good())
{
std::bitset<8> bits;
sstream >> bits;
output +=char(bits.to_ulong());
}
std::cout << output;
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 当字符串存储在变量中时,如何将字符串转换为wchar_t
- 如何将这个std::字符串转换为std::基本字符串
- 如何正确将字符串转换为标准::时间::system_clock::time_point?
- 如何在C++中将十六进制字符串转换为文本数据
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 如何从字符串转换为双精度*
- C++:如何将 unix 时间的字符串转换为 *tm?(使用时间错误:"cannot convert 'String' to 'tm*' ")
- 如何在C++中将 Python 字符串转换为其转义版本?
- 如何在 C++11 中将标准::字符串转换为标准::u32字符串?
- 如何将整数字符串转换为整数的二维向量?
- 使用 "stringstream " 将字符串转换为整数
- 将字符串转换为浮点数或整数,而无需使用内置函数(如 atoi 或 atof)
- 将文件复制到自定义位置,存在字符串转换问题
- 将ANSI C字符串转换为UNICODE
- 如何将节点 V8 字符串转换为 C++ 字符串
- 在C++中将字符串转换为双精度,而无需科学记数法
- 使用从文件(stod、strtod、atof)中提取的数据C++从字符串转换为双精度.csv
- 如何在C++中将字符串转换为双精度?
- 将字符串转换为无符号字符数组/字节数组