不能同时将ASCII字符转换为整型和十六进制
cant convert ascii charcters to int and hex at the same time
在将ASCII字符同时转换为整型和十六进制时出现问题
#include <iostream>
#include <iomanip>
#include<string>
using namespace std;
int main()
{
for (int i=0;i<265;i++){
cout<<char(i)<<" ";
cout<<int(i)<<endl;
cout << hex<< i<<endl ;
}
结果如下
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
a a
b b
c c
d d
e e
f f
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
1a 1a
1b 1b
1c 1c
1d 1d
1e 1e
1f 1f
20 20
! 21 21
" 22 22
# 23 23
$ 24 24
% 25 25
& 26 26
' 27 27
( 28 28
) 29 29
* 2a 2a
+ 2b 2b
, 2c 2c
- 2d 2d
. 2e 2e
/ 2f 2f
0 30 30
1 31 31
2 32 32
3 33 33
4 34 34
5 35 35
6 36 36
7 37 37
8 38 38
9 39 39
: 3a 3a
; 3b 3b
< 3c 3c
= 3d 3d
> 3e 3e
? 3f 3f
@ 40 40
A 41 41
B 42 42
C 43 43
D 44 44
E 45 45
F 46 46
G 47 47
H 48 48
I 49 49
J 4a 4a
K 4b 4b
L 4c 4c
M 4d 4d
N 4e 4e
O 4f 4f
P 50 50
Q 51 51
R 52 52
S 53 53
T 54 54
U 55 55
V 56 56
W 57 57
X 58 58
Y 59 59
Z 5a 5a
[ 5b 5b
5c 5c
] 5d 5d
^ 5e 5e
_ 5f 5f
` 60 60
a 61 61
b 62 62
c 63 63
d 64 64
e 65 65
f 66 66
g 67 67
h 68 68
i 69 69
j 6a 6a
k 6b 6b
l 6c 6c
m 6d 6d
n 6e 6e
o 6f 6f
p 70 70
q 71 71
r 72 72
s 73 73
t 74 74
u 75 75
v 76 76
w 77 77
x 78 78
y 79 79
z 7a 7a
{ 7b 7b
| 7c 7c
} 7d 7d
~ 7e 7e
7f 7f
� 80 80
� 81 81
� 82 82
� 83 83
� 84 84
� 85 85
� 86 86
� 87 87
� 88 88
� 89 89
� 8a 8a
� 8b 8b
� 8c 8c
� 8d 8d
� 8e 8e
� 8f 8f
� 90 90
� 91 91
� 92 92
� 93 93
� 94 94
� 95 95
� 96 96
� 97 97
� 98 98
� 99 99
� 9a 9a
� 9b 9b
� 9c 9c
� 9d 9d
� 9e 9e
� 9f 9f
� a0 a0
� a1 a1
� a2 a2
� a3 a3
� a4 a4
� a5 a5
� a6 a6
� a7 a7
� a8 a8
� a9 a9
� aa aa
� ab ab
� ac ac
� ad ad
� ae ae
� af af
� b0 b0
� b1 b1
� b2 b2
� b3 b3
� b4 b4
� b5 b5
� b6 b6
� b7 b7
� b8 b8
� b9 b9
� ba ba
� bb bb
� bc bc
� bd bd
� be be
� bf bf
� c0 c0
� c1 c1
� c2 c2
� c3 c3
� c4 c4
� c5 c5
� c6 c6
� c7 c7
� c8 c8
� c9 c9
� ca ca
� cb cb
� cc cc
� cd cd
� ce ce
� cf cf
� d0 d0
� d1 d1
� d2 d2
� d3 d3
� d4 d4
� d5 d5
� d6 d6
� d7 d7
� d8 d8
� d9 d9
� da da
� db db
� dc dc
� dd dd
� de de
� df df
� e0 e0
� e1 e1
� e2 e2
� e3 e3
� e4 e4
� e5 e5
� e6 e6
� e7 e7
� e8 e8
� e9 e9
� ea ea
� eb eb
� ec ec
� ed ed
� ee ee
� ef ef
� f0 f0
� f1 f1
� f2 f2
� f3 f3
� f4 f4
� f5 f5
� f6 f6
� f7 f7
� f8 f8
� f9 f9
� fa fa
� fb fb
� fc fc
� fd fd
� fe fe
� ff ff
100 100
101 101
102 102
103 103
104 104
105 105
106 106
107 107
108 108
RUN FINISHED; exit value 0; real time: 10ms; user: 0ms; system: 0ms
但是如果我把它们放在两个不同的循环中,它就可以工作了我得到ASCII和int然后ASCII和十六进制但我希望它们在一起,而不是在不同的循环中我想要的是这样的
ascii int hex
任何帮助用于打印整数的基数的设置是"sticky"的,因此它一直保持设置,直到您更改它。要像这样混合十进制和十六进制,您需要在打印的每个项之前显式地设置它:
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 265; i++) {
cout << char(i) << "t";
cout << dec << i << "t";
cout << hex << i << "n";
}
}
还注意到i
已经是int
了,所以转换为int
是不必要的。
同样,我建议完全避免使用std::endl
。"n"对于手头的任务来说已经足够了,虽然在这个特殊的情况下,您可能不关心速度的差异,但它通常要快得多(在其他情况下,速度差异确实很重要)。
你只需要在使用操纵符时包括<iomanip>
,比如std::setw(5)
,而不是那些不带参数的操纵符,比如std::hex
(奇怪的规则,我知道)。
相关文章:
- 如何在openssl-ecc中获取十六进制格式的私钥
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- 为什么mpfr_printf与十六进制浮点(%a转换说明符)的printf不同
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- 将长整型值打印为带有前导零的十六进制
- 将字符串中以十六进制形式存储的负长整型值转换为 C++ 中的长整型变量
- 如何在 c++ 中将十六进制字符串转换为长整型字符串
- 将十六进制二进制或十进制字符串转换为长整型字符串C++
- 在 c++ 中将长整型转换为十六进制和二进制
- 不能同时将ASCII字符转换为整型和十六进制
- 使用一个十六进制整型从编辑框(WinAPI)
- 在C++中,用十六进制或八进制表示的整型文字的默认类型是什么
- 如何将十六进制字符串转换为无符号长整型字符串
- 十六进制到整型的转换在不同的环境中表现不同
- 如何使用C语言将整数值转换为其相应的十六进制并将其存储在单字节变量中
- 如何从数组中向后读取十六进制字符并将其转换为整型