gpt4 book ai didi

C++ 如何将 int 转换为十六进制字符(如 0x0A,而不是 "0A")

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:45:07 25 4
gpt4 key购买 nike

抱歉,如果这很难理解:P 我正在尝试将十进制 int 值转换为 char 值,以便我可以在 C++ 中使用 fstream 以二进制模式编写它。我这样做了: char hexChar = 0x01; file.write(hexChar, size);.在我需要从用户写一个 decimal int 之前,它工作得很好。我的问题是,如何将 decimal int 转换为 char hex 值,如下所示:int decInt = 10;字符 hexChar = 0x00; hexChar = decInt; file.write(hexChar, size); PS:我已经用谷歌搜索了大约一个小时,但没有找到答案。其他解决的问题都是十进制到 ASCII 十六进制值,例如使用 cout 的“0A”,而不是使用 fstream 的 0x0A。

最佳答案

使用哪种文字来初始化 int 变量并不重要

int x = 0x0A;
int y = 10;

上面的语句为变量赋了完全相同的值。

要以十六进制表示输出数值,您可以使用 std::hex I/O 流操纵器:

#include <iostream>
#include <iomanip>


int main() {
int x = 10; // equivalents to 0x0A
int y = 0x0A; // equivalents to 10

std::cout << std::setw(2) << std::setfill('0')
<< "x = " << std::hex << "0x" << x << std::endl;
std::cout << "y = " << std::dec << y << std::endl;

return 0;
}

输出:

x = 0xa
y = 10

查看实时样本 here .

关于C++ 如何将 int 转换为十六进制字符(如 0x0A,而不是 "0A"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22889422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com