问题:如何将一个数值如0xfaceabcd转化成二进制的字符串?
第一时间想到的是STL
对了就是bitset对象
详细见http://www.cplusplus.com/reference/bitset/bitset/?kw=bitset
#include <iostream>
#include <bitset>
using namespace std;
int main()
{
bitset<32> t(0xfaceabcd);
cout<<"0x"<<hex<<t.to_ulong()<<"="<<t.to_string()<<"b"<<endl;
}
输出:0xfaceabcd=11111010110011101010101111001101b
如果是在windows下要实现,ANSI下bitset是正常
但是UNICODE版
使用bitset对象就显得力不从心
咋办?咋办?咋办?
不如自己定义一个模板类来得快
#include <windows.h>
#include <tchar.h>
template <typename T>
class XBIT
{
private:
UINT m_size;//位数
T m_value;//值