当前位置: 首页 > news >正文

c++之基础B(x转10进制,含十六进制)(第四课)

1.前文

2.正文(加遗漏)

2.1x进制转十进制

2.1.1二进制转十进制

2.1.2 八进制转十进制

2.2 十六进制转十进制

2.3 十进制转十六进制

1.前文

好吧,上一次的文章少了十转十六进制的,今天一起补上

2.正文(加遗漏)

2.1x进制转十进制

2.1.1二进制转十进制

这个代码关于权重,我就先简略介绍一下吧

权重,就是指这个位数上的数的数值是多少

比如:

32   16   8   4   2   1

1     1     0   1   1   0

为零的数位上就不计算(也可以计算,装b吗,谁不会呀)

所以,这个二进制数,转成十进制数算式就是这样

(从低位到高位算)

=0*1+1*2+1*4+0*8+1*16+1*32

=0+2+4+0+16+32

=54

所以,我们就要定义一个变量,q(权重的简称(权)的首字母)

然后,就要把代码给放出来了

#include<bits/stdc++.h>
using namespace std;
int main()
{int k,q=1,sum=0;//k是来储存每一位上的数字的string s;cin>>s;int n=s.size();for(int i=n-1;i>=0;i--)//从低位到高位取 {k=s[i]-'0';//将每一位数字字符转成数字 sum=sum+k*q;//乘权重求和q=q*2;//每往前一位,权重扩大2倍,毕竟是二进制转十进制吗}cout<<sum;return 0;
}

2.1.2 八进制转十进制

一样,把第十三行的q=q*2改成q=q*8就行了

#include<bits/stdc++.h>
using namespace std;
int main()
{int k,q=1,sum=0;//k是来储存每一位上的数字的string s;cin>>s;int n=s.size();for(int i=n-1;i>=0;i--)//从低位到高位取 {k=s[i]-'0';//将每一位数字字符转成数字 sum=sum+k*q;//乘权重求和q=q*8;//每往前一位,权重扩大8倍,毕竟是八进制转十进制吗}cout<<sum;return 0;
}

2.1.3 十六进制转十进制

接下来,就是重头戏登场了

首先,十六进制与其他进制不同的是

10=A   11=B   12=C   13=D   14=E   15=F

然后,就是取余

如果取余的数字小于等于9

就把数字字符转成数字

否则,把字母字符转成数字,把这个数减‘A’加10(或直接加55)

如果你不知道为什么要加上55,请看VCR

字符       ASCLL码

A                 65

B                 66

C                 67

D                 68

E                 69

F                 70

举个栗子,,15+55=70

70转成ASCLL码就是F

#include<bits/stdc++.h>
using namespace std;
int main()
{int k,q=1,sum=0;string s;cin>>s;int n=s.size();for(int i=n-1;i>=0;i--)//从低位到高位取 {if(s[i]>='A'&&s[i]<='F'){k=s[i]-'A'+10;//将每一位字母字符转成数字 }else{k=s[i]-'0';//将每一位数字字符转成数字 }sum=sum+k*q;//乘权重求和q=q*16;//每往前一位,权重扩大16倍 }cout<<sum;return 0;
}

懂?

2.2遗漏掉的十转十六进制

跟之前差不多(第一个for循环)

    int a[105];

    int n,cnt=0;
cin>>n;
for(int i=n;i>=1;i=i/16)
{
cnt++;
a[cnt]=i%16;
}

如果a[i]是个位数,就直接输出

否则输出a[i]加55的char类型

代码,即:

#include<bits/stdc++.h>
using namespace std;
int a[105]; 
int main()
{int n,cnt=0;cin>>n;for(int i=n;i>=1;i=i/16){cnt++;a[cnt]=i%16;}for(int i=cnt;i>=1;i--){if(a[i]<=9)//个位数直接输出 {cout<<a[i];}else//不是个位需要转成字符 {cout<<char(a[i]+55);}}return 0;
}

(逃!)

新手小白(基础A,不过讲的是基础B)


文章转载自:

http://t2VUlfJt.ssjry.cn
http://4OWNeXBO.ssjry.cn
http://c7PuuufV.ssjry.cn
http://Rnk0wvxV.ssjry.cn
http://UHUMXQHJ.ssjry.cn
http://4M13M4Ir.ssjry.cn
http://e3fKrCyA.ssjry.cn
http://J9h3JSwa.ssjry.cn
http://u3Smqwc1.ssjry.cn
http://FNdlhVfM.ssjry.cn
http://2eBTrM9X.ssjry.cn
http://I2XJA6GZ.ssjry.cn
http://MW2SUKc3.ssjry.cn
http://bi5H7eB6.ssjry.cn
http://xcGiIVS7.ssjry.cn
http://yYJDcuFs.ssjry.cn
http://U7EXGt8F.ssjry.cn
http://DvwSNspD.ssjry.cn
http://RDi4KKDF.ssjry.cn
http://1wodE4mm.ssjry.cn
http://PGLgjK82.ssjry.cn
http://PBUo4PeX.ssjry.cn
http://YHO6ammr.ssjry.cn
http://BOeebBuA.ssjry.cn
http://GNvx6CVm.ssjry.cn
http://PgI60FMX.ssjry.cn
http://EYRyr3J8.ssjry.cn
http://bHYBqvgB.ssjry.cn
http://d0EGzhQV.ssjry.cn
http://szKakITS.ssjry.cn
http://www.dtcms.com/a/371116.html

相关文章:

  • 自注意力机制解析
  • 数据结构——队列(Java)
  • Dify 从入门到精通(第 79/100 篇):Dify 的多模态模型评估(高级篇)
  • 具身导航“所想即所见”!VISTA:基于生成式视觉想象的视觉语言导航
  • synchronized 锁升级
  • 深入解析 Java 的类加载机制
  • GEE:时间序列合成一个不填补空洞,保留时间序列空像素的新影像
  • Zoom AI 技术架构研究:联合式方法与多模态集成
  • Arch Linux运维自动更新脚本推荐
  • 深度拆解OpenHarmony NFC服务:从开关到卡模拟掌握近场通信技术
  • 第5章递归:分治法
  • 【Python字符串格式化】:全面指南与最佳实践
  • MySQL学习记录-索引
  • C++进阶——继承(2)
  • Oracle体系结构-Redo Log Buffer详解
  • 【医学影像 AI】YoloCurvSeg:仅需标注一个带噪骨架即可实现血管状曲线结构分割
  • Nginx安装及版本迭代热部署详解
  • [光学原理与应用-422]:非线性光学 - 计算机中的线性与非线性运算
  • 图片木马制作的三种方法
  • QT之实现点击按钮启动另一个桌面应用程序
  • 贪心算法在医疗影像分割中的应用详解
  • 责任分配矩阵(RAM)
  • Science Advances副主编:如何提高论文投稿接收率?
  • 【目录-单选】鸿蒙HarmonyOS开发者基础
  • C++语法之--多态
  • Spring Cloud Alibaba快速入门02-Nacos
  • 一阶低通滤波:从原理到实践,平滑数据的艺术
  • 2025最新超详细FreeRTOS入门教程:第一章 FreeRTOS移植到STM32
  • 用Python打造逼真的照片桌面:从拖拽到交互的完整实现
  • 【selenium】网页元素找不到?从$(‘[placeholder=“手机号“]‘)说起