计算机进制转换

十进制和二进制相互转换

十进制转二进制

int a = 10;
bitset<10> bit(a);
cout << bit << endl;
输出:0000001010

二进制转十进制

     第一种方法:

bitset<10> bit("010101");
int a = bit.to_ullong(); //这里为unsigned long long
cout << a << endl;
输出:21

    第二种方法: 

string out = "0101";
int x = stoi(out, nullptr, 2);
cout << x <<endl;

字符串和二进制相互转换

二进制转字符串

bitset<10> bit("010101");
string str = bit.to_string();
cout << str << endl;
输出:0000010101

字符串转二进制

string str = "010101";
bitset<10> bit(str);	
cout << bit << endl;
输出:0000010101

字符串和十进制相互转换

十进制转字符串

int a = 345;
string str = to_string(a);
cout << str << endl;
输出:345

字符串转十进制

string str = "3456";
int a = stoi(str);
cout << a << endl;
输出:3456

十进制和十六进制相互转换

十六进制转十进制

第一种方法:
#include 
int x;
stringstream ss;
ss << std::hex << "1A";  //std::oct(八进制)、std::dec(十进制)
ss >> x;
cout << x << endl;
第二种方法:
string out = "1A";
int x = stoi(out, nullptr, 16);
cout << x << endl;

十进制转十六进制

int x = 26 ;
string out;
stringstream ss;
ss << std::hex <> out ;
transform(out.begin(), out.end(), out.begin(), ::toupper);
cout << out <<ednl;

二进制和十六进制

二进制转十六进制

string binary = "11010101";
string hex;
stringstream ss;
ss << std::hex << stoi(binary, nullptr, 2);
ss >> hex;
transform(hex.begin(), hex.end(), hex.begin(), ::toupper);
cout << hex << endl;

十六进制转二进制

string binary = "D5";
bitset<8> bit(stoi(binary, nullptr, 16));
cout << bit << endl;
输出:11010101

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值