#include <cstdlib>
#include <iostream>
using namespace std;
enum e1{dark, red};
enum flag{x=1,y=2,z=4,e=8};
void PrintChars();
void PrintIntChar();
void PrintInt();
void PrintHexdecimal();
void PrintHexdecimal2();
void PrintHexdecimalTest();
void PrintHexdecimalTest2();
int main(int argc, char *argv[])
{
cout<< "sizeof(bool) is " << sizeof( bool ) << endl;
cout<< "sizeof(char) is " << sizeof( char )<< endl;
cout<< "sizeof(int) is " << sizeof( int )<< endl;
cout<< "sizeof(double) is " << sizeof( double )<< endl;
cout<< "sizeof(e1) is " << sizeof( e1 )<< endl;
flag f1 = flag(5);
flag f3 = flag(z|e);
flag f4 = flag(99);
cout<< "sizeof(flag) is " << sizeof( flag )<< endl;
int *p;
cout<< "sizeof(pointer) is " << sizeof( p )<< endl;
int *pp;
cout<< "sizeof(pointer's pointer) is " << sizeof( pp )<< endl;
PrintChars();
PrintIntChar();
PrintInt();
PrintHexdecimal();
PrintHexdecimal2();
PrintHexdecimalTest();
PrintHexdecimalTest2();
}
void PrintChars()
{
cout<< "PrintChars() begin..." << endl;
for( int i = int('a') ; i < int('z') ; i++)
{
cout << char(i) << endl;
}
cout<< "PrintChars() end..." << endl;
}
void PrintIntChar()
{
cout<< "PrintIntChar() begin..." << endl;
for( int i = int('1') ; i < int('9') ; i++)
{
cout << char(i) << endl;
}
cout<< "PrintIntChar() end..." << endl;
}
void PrintInt()
{
cout<< "PrintInt() begin..." << endl;
for( int i = 1 ; i < 9 ; i++)
{
cout << i << endl;
}
cout<< "PrintInt() end..." << endl;
}
void PrintHexdecimal()
{
cout<< "PrintHexdecimal() begin..." << endl;
for( int i = 0x0 ; i < 0xff ; i++)
{
cout << i << endl;
}
cout<< "PrintHexdecimal() end..." << endl;
}
void PrintHexdecimal2()
{
cout<< "PrintHexdecimal2() begin..." << endl;
for( int i = 0x0 ; i < 0xff ; i++)
{
cout.setf(ios::showbase);
cout<<hex<<i<<endl;
}
cout<< "PrintHexdecimal2() end..." << endl;
}
void PrintHexdecimalTest()
{
cout<< "PrintHexdecimalTest() begin..." << endl;
for( int i = 0x0 ; i < 0xff ; i++)
{
cout.setf( ios::hex );
cout<<hex<<i<<endl;
}
cout<< "PrintHexdecimalTest() end..." << endl;
}
void PrintHexdecimalTest2()
{
cout<< "PrintHexdecimalTest2() begin..." << endl;
cout.setf(ios::showbase);
cout<<hex<<2123<<endl;
cout<< "PrintHexdecimalTest2() end..." << endl;
}
运行结果为:
sizeof(bool) is 1
sizeof(char) is 1
sizeof(int) is 4
sizeof(double) is 8
sizeof(e1) is 4
sizeof(flag) is 4
sizeof(pointer) is 4
sizeof(pointer's pointer) is 4
PrintChars() begin...
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
PrintChars() end...
PrintIntChar() begin...
1
2
3
4
5
6
7
8
PrintIntChar() end...
PrintInt() begin...
1
2
3
4
5
6
7
8
PrintInt() end...
PrintHexdecimal() begin...
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
PrintHexdecimal() end...
PrintHexdecimal2() begin...
0
0x1
0x2
0x3
0x4
0x5
0x6
0x7
0x8
0x9
0xa
0xb
0xc
0xd
0xe
0xf
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
0x1a
0x1b
0x1c
0x1d
0x1e
0x1f
0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x28
0x29
0x2a
0x2b
0x2c
0x2d
0x2e
0x2f
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x3a
0x3b
0x3c
0x3d
0x3e
0x3f
0x40
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4a
0x4b
0x4c
0x4d
0x4e
0x4f
0x50
0x51
0x52
0x53
0x54
0x55
0x56
0x57
0x58
0x59
0x5a
0x5b
0x5c
0x5d
0x5e
0x5f
0x60
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
0x69
0x6a
0x6b
0x6c
0x6d
0x6e
0x6f
0x70
0x71
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
0x7a
0x7b
0x7c
0x7d
0x7e
0x7f
0x80
0x81
0x82
0x83
0x84
0x85
0x86
0x87
0x88
0x89
0x8a
0x8b
0x8c
0x8d
0x8e
0x8f
0x90
0x91
0x92
0x93
0x94
0x95
0x96
0x97
0x98
0x99
0x9a
0x9b
0x9c
0x9d
0x9e
0x9f
0xa0
0xa1
0xa2
0xa3
0xa4
0xa5
0xa6
0xa7
0xa8
0xa9
0xaa
0xab
0xac
0xad
0xae
0xaf
0xb0
0xb1
0xb2
0xb3
0xb4
0xb5
0xb6
0xb7
0xb8
0xb9
0xba
0xbb
0xbc
0xbd
0xbe
0xbf
0xc0
0xc1
0xc2
0xc3
0xc4
0xc5
0xc6
0xc7
0xc8
0xc9
0xca
0xcb
0xcc
0xcd
0xce
0xcf
0xd0
0xd1
0xd2
0xd3
0xd4
0xd5
0xd6
0xd7
0xd8
0xd9
0xda
0xdb
0xdc
0xdd
0xde
0xdf
0xe0
0xe1
0xe2
0xe3
0xe4
0xe5
0xe6
0xe7
0xe8
0xe9
0xea
0xeb
0xec
0xed
0xee
0xef
0xf0
0xf1
0xf2
0xf3
0xf4
0xf5
0xf6
0xf7
0xf8
0xf9
0xfa
0xfb
0xfc
0xfd
0xfe
PrintHexdecimal2() end...
PrintHexdecimalTest() begin...
0
0x1
0x2
0x3
0x4
0x5
0x6
0x7
0x8
0x9
0xa
0xb
0xc
0xd
0xe
0xf
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
0x1a
0x1b
0x1c
0x1d
0x1e
0x1f
0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x28
0x29
0x2a
0x2b
0x2c
0x2d
0x2e
0x2f
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x3a
0x3b
0x3c
0x3d
0x3e
0x3f
0x40
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4a
0x4b
0x4c
0x4d
0x4e
0x4f
0x50
0x51
0x52
0x53
0x54
0x55
0x56
0x57
0x58
0x59
0x5a
0x5b
0x5c
0x5d
0x5e
0x5f
0x60
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
0x69
0x6a
0x6b
0x6c
0x6d
0x6e
0x6f
0x70
0x71
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
0x7a
0x7b
0x7c
0x7d
0x7e
0x7f
0x80
0x81
0x82
0x83
0x84
0x85
0x86
0x87
0x88
0x89
0x8a
0x8b
0x8c
0x8d
0x8e
0x8f
0x90
0x91
0x92
0x93
0x94
0x95
0x96
0x97
0x98
0x99
0x9a
0x9b
0x9c
0x9d
0x9e
0x9f
0xa0
0xa1
0xa2
0xa3
0xa4
0xa5
0xa6
0xa7
0xa8
0xa9
0xaa
0xab
0xac
0xad
0xae
0xaf
0xb0
0xb1
0xb2
0xb3
0xb4
0xb5
0xb6
0xb7
0xb8
0xb9
0xba
0xbb
0xbc
0xbd
0xbe
0xbf
0xc0
0xc1
0xc2
0xc3
0xc4
0xc5
0xc6
0xc7
0xc8
0xc9
0xca
0xcb
0xcc
0xcd
0xce
0xcf
0xd0
0xd1
0xd2
0xd3
0xd4
0xd5
0xd6
0xd7
0xd8
0xd9
0xda
0xdb
0xdc
0xdd
0xde
0xdf
0xe0
0xe1
0xe2
0xe3
0xe4
0xe5
0xe6
0xe7
0xe8
0xe9
0xea
0xeb
0xec
0xed
0xee
0xef
0xf0
0xf1
0xf2
0xf3
0xf4
0xf5
0xf6
0xf7
0xf8
0xf9
0xfa
0xfb
0xfc
0xfd
0xfe
PrintHexdecimalTest() end...
PrintHexdecimalTest2() begin...
0x84b
PrintHexdecimalTest2() end...
另外,引用一片关于输出时进制转换的一篇不错的文章:
cout.setf(ios::hex)等设置进制输出为什么没效果?
所属分类:C/C++ C++ 语言
-----------------------------------------
#include<iostream>
#include <iomanip>
using namespace std;
int main()
{
cout.setf(ios::showbase);
cout<<hex<<2123<<endl;
system("pause");
return 0;
}
这样的话可以转换进制的输出,但是换到下面的就没效果。
#include<iostream>
#include <iomanip>
using namespace std;
int main()
{
cout.setf(ios::showbase);
cout.setf(ios::hex)
cout<<2123<<endl;
system("pause");
return 0;
}
我再DEV C++和Visual Studio 2005试过了都没有效果
----------------------------------------------------------------------
mymtom@fc6:src/csdn/cpp/ios$ cat setf.cpp
#include<iostream>
#include <iomanip>
using namespace std;
int main()
{
cout.setf(ios::showbase);
cout.setf(ios_base::hex, ios_base::basefield);
cout << 2123 << endl;
(void)getchar();
return 0;
}
mymtom@fc6:src/csdn/cpp/ios$ ./setf
0x84b
原因:
除非知道当前没有设置基标志,否则 ios::setf(_IFlags) 不应和 ios::dec、ios::oct 或 ios::hex 的标志值一起使用。格式化的输入/输出函数和运算符假定只设置了一个基。改用 ios_base。例如,setf( ios_base::oct, ios_base::basefield ) 清除所有基信息并将基设置成八进制。
来自:
http://blog.csdn.net/sssxueren/archive/2004/12/29/233352.aspx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架