一、(八进制表示,并十进制输出)std::cout << std::dec << 011 << std::endl; 输出结果为9
二、(十六进制表示,并十进制输出)std::cout << std::dec << 0x11 << std::endl; 输出结果为17
三、 由于不能采用采用C++直接表示二进制,所以采用bitset表示二进制
方法一:
#include<bitset>
#include<iostream>
int main()
{
int c=5;
std::bitset<sizeof(int)*8> a(c);
std::cout<<a<<"\n";
return 0;
}
方法二:
char szN[10];
memset(szN,0,10);
itoa(17,szN,2);
std::cout << szN << std::endl;
二进制数转十进制数函数
- int BinaryToDecimal(const char *str)
- {
- int value = 0;
- if(str==NULL)
- return 0;
- for (int i = 0 ; i < strlen(str) ; i++){
- if (atoi(&str[i]) == 0)
- {
- value <<= 1;
- continue;
- }
- value <<= 1;
- value += 1;
- }
- return value;
- }