C++ 将字节转换为两位数、十六进制数

C++ 将字节转换为两位数、十六进制数,c++,int,hex,C++,Int,Hex,三个整数。当输入像上面那样时,我得到的是: f0f1f2 所以甚至不接近(顺便说一句,“f”怎么等于105?)。我非常确定这是因为它把数字作为小数-如何告诉它这些实际上是十六进制?我可以将每对字符添加到单个字符串中,并使用strtol转换为整数,但这真的是一种方法吗?您的计算基于ASCII数字,即102表示“f”,48表示“0”。 在计算之前,从0到9之间的每个字符中减去“0”(=48) 和('a'-10)其余部分(小写)您的计算基于ASCII数字,即102表示“f”,48表示“0”。 在计算

三个整数。当输入像上面那样时,我得到的是:

f0f1f2

所以甚至不接近(顺便说一句,“f”怎么等于105?)。我非常确定这是因为它把数字作为小数-如何告诉它这些实际上是十六进制?我可以将每对字符添加到单个字符串中,并使用strtol转换为整数,但这真的是一种方法吗?

您的计算基于ASCII数字,即102表示“f”,48表示“0”。
在计算之前,从0到9之间的每个字符中减去“0”(=48)

('a'-10)
其余部分(小写)

您的计算基于ASCII数字,即102表示“f”,48表示“0”。
在计算之前,从0到9之间的每个字符中减去“0”(=48)

('a'-10)
其余部分(小写)

您的计算基于ASCII数字,即102表示“f”,48表示“0”。
在计算之前,从0到9之间的每个字符中减去“0”(=48)

('a'-10)
其余部分(小写)

您的计算基于ASCII数字,即102表示“f”,48表示“0”。
在计算之前,从0到9之间的每个字符中减去“0”(=48)


('a'-10)
对于其余部分(小写)

不清楚您所说的
f0f1f2
是什么意思,您的意思是它将这些字符作为字符串组成吗?还是说它由十六进制值组成?如果有,哪一个?0xf0、0xf1、0xf2?还是0xf0f1f2?还是什么?不清楚你所说的
f0f1f2
是什么意思,你是说它是由这些字符组成的字符串吗?还是说它由十六进制值组成?如果有,哪一个?0xf0、0xf1、0xf2?还是0xf0f1f2?还是什么?不清楚你所说的
f0f1f2
是什么意思,你是说它是由这些字符组成的字符串吗?还是说它由十六进制值组成?如果有,哪一个?0xf0、0xf1、0xf2?还是0xf0f1f2?还是什么?不清楚你所说的
f0f1f2
是什么意思,你是说它是由这些字符组成的字符串吗?还是说它由十六进制值组成?如果有,哪一个?0xf0、0xf1、0xf2?还是0xf0f1f2?或者什么?如果testRead包含大写字母,那么减去
'A'-10
@deviantfan我编辑了我的问题,仍然得到奇怪的数字。。。我可能误解了什么。@smsware:他的意思是你在使用字符<代码>'0'是一个字符。不能将ASCII字符完全视为整数;你需要先转换它们。@AndyG-我刚刚想好了。对不起,现在是早上6:30如果testRead包含大写字母,那么减去
'A'-10
@deviantfan我编辑了我的问题,仍然得到奇怪的数字。。。我可能误解了什么。@smsware:他的意思是你在使用字符<代码>'0'是一个字符。不能将ASCII字符完全视为整数;你需要先转换它们。@AndyG-我刚刚想好了。对不起,现在是早上6:30如果testRead包含大写字母,那么减去
'A'-10
@deviantfan我编辑了我的问题,仍然得到奇怪的数字。。。我可能误解了什么。@smsware:他的意思是你在使用字符<代码>'0'是一个字符。不能将ASCII字符完全视为整数;你需要先转换它们。@AndyG-我刚刚想好了。对不起,现在是早上6:30如果testRead包含大写字母,那么减去
'A'-10
@deviantfan我编辑了我的问题,仍然得到奇怪的数字。。。我可能误解了什么。@smsware:他的意思是你在使用字符<代码>'0'是一个字符。不能将ASCII字符完全视为整数;你需要先转换它们。@AndyG-我刚刚想好了。对不起,现在是早上6:30
f0f1f2
{1680, 1681, 1682}