如何将64位地址的std::string表示转换为uint64_t
How to convert std::string representation of 64-bit address to uint64_t?
我有一个std::string
,以十六进制形式的小端序表示64位内存地址。如何将其转换为uint64_t
表示?
#include <sstream>
#include <string>
#include <iostream>
#include <iomanip>
#include <cstdint>
int main()
{
std::string s("0x12345");
std::stringstream strm(s);
std::uint64_t n;
strm >> std::hex >> n;
std::cout << std::hex << n << std::endl;
return 0;
}
这将按预期打印12345
。
编辑:如果你想从小端序转换为大端序,这也是可能的:
#include <sstream>
#include <string>
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <cstdint>
int main()
{
std::string s("0x12345");
std::stringstream strm(s);
union {
std::uint64_t n;
std::uint8_t a[8];
} u;
strm >> std::hex >> u.n;
std::reverse(u.a, u.a + 8);
std::cout << std::hex << std::setfill('0') << std::setw(16) << u.n << std::endl;
return 0;
}
相关文章:
- 将 boost 序列化对象的 asio::streambuf 表示转换为 Beast 的 DynamicBody req.body()
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- C++显式类型转换(C 样式强制转换)的强制表示法和static_cast的多种解释
- C++ 将十六进制字符串表示形式转换为十六进制字符串表示形式
- 在C++中,将无符号整数转换为八进制表示,反之亦然的最佳方法是什么
- 如何将QBytearrayBCD转换为十进制QString表示
- 使用向量将给定表达式转换为波兰表示法时出现运行时错误
- 如何在 c++ 中将字节转换为 ASCII 十六进制表示形式?
- C++字符串表示中将无符号字符数组转换为长(或长长)
- 递归地将给定字符串转换为它所表示的数字
- 将两位数字转换为低内存表示的最快方法
- 如何转换由字符表示的十六进制值
- 字符串表示日期并转换
- 如何将一个数字(大于8个字节)从字符阵列转换为其ASCII表示
- 如何使用C 将二进制数字的字符串转换为其签名的十进制表示
- 如何将字符串转换为十六进制表示形式
- 在二进制表示中将二进制 std::string 转换为 int
- 使用定点表示法将双精度转换为字符串,没有尾随零和机智的冲刺
- 将uint8_t转换为其二进制表示
- 将ColedateTime转换为tick或整数表示