C++输出16进制格式
2017-07-19 00:00
127 查看
//gcgetData(int offset): display return value in both Hex and decimal format for the data in Gantry controller area with offset address. void getPCIData() { volatile UINT32* pciaddr = (UINT32*)ptr_FPGABeam; int offset = pcimenu.getInt("Input Offset"); UINT32 value = *(pciaddr+offset); ios::fmtflags fmtf(cout.flags()); // save old format std::cout << "offset=" << offset << ", value(int)=" << value << ",value(hex)=0x" << std::hex << value << std::endl; cout.flags(fmtf); } //gcsetData (int offset, int data): set the data to the Gantry Controller register at offset address. Display the set data in both hex and decimal format. void setPCIData() { volatile UINT32* pciaddr = (UINT32*)ptr_FPGABeam; int offset = pcimenu.getInt("Input Offset"); UINT32 value = pcimenu.getInt("Input Value"); *(pciaddr+offset) = value; ios::fmtflags fmtf(cout.flags()); // save old format std::cout << "offset=" << offset << ", value(int)=" << value << ",value(hex)=0x" << std::hex << value << std::endl; cout.flags(fmtf); }
如上所示,是一个获取内存地址数据和设置内存地址数据的函数。
输出16进制数据时使用到std::hex,但是有一个问题就是,输出的数据类型只能是整数类型,如 int 或 long 类型,如果是 float 或 double 类型,输出的时候将不会得到正确显示。
ios::fmtflags fmtf(cout.flags());用来记录当前输出的格式,在使用完成hex输出之后要还原之前的输出格式,否则后续的所有输出都会是hex格式。
相关文章推荐
- PAT (Basic Level) Practise 的C++实现-1006. 换个格式输出整数
- 【c++】c++格式控制输出简单应用
- [C++]输出格式
- C++ 输入输出格式 与 精度问题
- 文件操作与模板 编程题#2: 实数的输出格式(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 总结……c++的输出格式
- C++ cout输出16进制
- C++格式化输出,C++输出格式控制
- (c++)一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子
- C++输出格式控制
- C++_输入输出格式控制
- 【C++】输出格式
- 谈谈C++中如何设置输出格式
- C++_输出格式控制
- C++中的输入、输出格式
- c++ cout 格式输出
- PAT 1006 乙等 (换个格式输出整数) c++
- 【C++学习笔记】使用控制符及流对象的成员函数控制输出格式
- 谈谈C++中如何设置输出格式
- C++ 输入输出格式