16转10
用竖式计算:
16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方
第0位: 5 * 16^0 = 5
第1位: F * 16^1 = 240
第2位: A * 16^2 = 2560
第3位: 2 * 16^3 = 8192
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
while(cin >> s){
int length = s.length();
long long sum = 0;
for(int x = 0; x < length; ++x){
if(s[x] >= '0' && s[x] <= '9'){
sum = (s[x] - '0') + 16 * sum;
}else{
sum = (s[x] - 'A' + 10) + 16 * sum;
}
}
cout << sum;
}
return 0;
}
16转2
由于在二进制的表示方法中,每四位所表示的数的最大值对应16进制的15,即16进制每一位上最大值,所以,我们可以得出简便的转换方法,将16进制上每一位分别对应二进制上四位进行转换
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
while(cin >> s){
int length = s.length();
long long sum = 0;
int answer[40];
int cot = 0;
for(int x = 0; x < length; ++x){
int y = 2;
if(s[x] >= '0' && s[x] <= '9'){
y = (s[x] - '0');
}else{
y = (s[x] - 'A' + 10);
}
do{
answer[cot++] = y % 2;
y /= 2;
}while(y != 0);
}
for(int i = 0; i < cot; ++i){
cout << answer[cot - 1 - i];
}
}
return 0;
}
2转16
16进制就有16个数,015,用二进制表示15的方法就是1111,从而可以推断出,16进制用2进制可以表现成00001111,顾名思义,也就是每四个为一位
0 0 1 1 | 1 1 0 1
左半边 = 2 + 1 = 3 右半边 = 8 + 4 + 1 = 13 = D
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string s;
while(cin >> s){
int length = s.length();
string s2;
int pro = 1, sum = 0, cot = 0;
for(int x = length - 1; x >= 0; --x){
sum += (s[x] - '0') * pro;
pro *= 2;
if(x % 4 == 0){
if(sum >= 10){
s2 += sum - 10 + 'A';
}
else{
s2 += sum + '0';
}
pro = 1;
sum = 0;
}
}
reverse(s2.begin(), s2.end());
cout << s2;
}
return 0;
}
10转16
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
long long s;
while(cin >> s){
char ans[20] = {0};
int cot = 0;
do{
if(s % 16 >= 10){
ans[cot++] = s % 16 - 10 + 'A';
}
else{
ans[cot++] = s % 16 + '0';
}
s /= 16;
}while(s);
for(int i = 0; i < cot; ++i){
cout << ans[cot - 1 - i];
}
}
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
常用算法模板_C++.zip

共34个文件
txt:34个

需积分: 48 29 下载量 180 浏览量
2022-04-27
13:34:02
上传
评论 9
收藏 25KB ZIP 举报
温馨提示
常用算法模板_C++.zip AC自动机,Dijkstra,Floyd,GCD,KMP,KMP扩展,Kruskal,LCM,LCS,LIS,Prim,SPFA,埃氏筛,背包,并查集,多边形面积,二分搜索,高精度加法,高精度阶乘,级角排序,进制转换,快速幂,判断线段相交,求三角形外心,全排列,染色-二分图,树状数组,线段树-点更新,线段树-区间更新,向量,匈牙利算法,中国剩余定理,字典树
资源详情
资源评论
资源推荐
收起资源包目录




































共 34 条
- 1





格式:msword 资源大小:216.5KB 页数:54

























XHD_0728
- 粉丝: 43
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0