c++二进制、八进制、十进制与十六进制的应用 您所在的位置:网站首页 6进制转10进制方法计算器怎么用 c++二进制、八进制、十进制与十六进制的应用

c++二进制、八进制、十进制与十六进制的应用

2023-06-02 13:30| 来源: 网络整理| 查看: 265

1.二进制、八进制、十进制与十六进制的介绍

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。 [1] 二进制数(binaries)是逢2进位的进位制,0、1是基本算符 [2] ;计算机运算基础采用二进制。电脑的基础是二进制。在早期设计的常用的进制主要是十进制(因为我们有十个手指,所以十进制是比较合理的选择,用手指可以表示十个数字,0的概念直到很久以后才出现,所以是1-10而不是0-9)。电子计算机出现以后,使用电子管来表示十种状态过于复杂,所以所有的电子计算机中只有两种基本的状态,开和关。也就是说,电子管的两种状态决定了以电子管为基础的电子计算机采用二进制来表示数字和数据。常用的进制还有8进制和16进制,在电脑科学中,经常会用到16进制,而十进制的使用非常少,这是因为16进制和二进制有天然的联系:4个二进制位可以表示从0到15的数字,这刚好是1个16进制位可以表示的数据,也就是说,将二进制转换成16进制只要每4位进行转换就可以了。

按八进制记数的数。在八进制数中,每一位用0—7八个数码表示,所以它的计数基数为8。低位数和高一位数之间的关系是逢八进一。十进制数、二进制数、八进制数之间存在一定的对应关系。同样一个数用八进制写出的结果要比用二进制写出的结果简单得多。

十进制,是一种计数方法。600,3/5,-7.99……看着这些耳熟能详的数字,你有没有想太多呢?其实这都是全世界通用的十进制,即1.满十进一,满二十进二,以此类推……2.按权展开,第一位权为100,第二位101……以此类推,第N位10^(N-1),该数的数值等于每位位的数值*该位对应的权值之和。 首先,现在人们日常生活中所不可或离的十进位值制,就是中国的一大发明。至迟在商代时,中国已采用了十进位值制。从现已发现的商代陶文和甲骨文中,可以看到当时已能够用一、二、三、四、五、六、七、八、九、十、百、千、万等十三个数字,记十万以内的任何自然数。这些记数文字的形状,在后世虽有所变化而成为现在的写法,但记数方法却从没有中断,一直被沿袭,并日趋完善。十进位值制的记数法是古代世界中最先进、科学的记数法,对世界科学和文化的发展有着不可估量的作用。

十六进制(简写为hex或下标16)是一种基数为16的计数系统,是一种逢16进1的进位制。通常用数字0、1、2、3、4、5、6、7、8、9和字母A、B、C、D、E、F(a、b、c、d、e、f)表示,其中:AF表示1015,这些称作十六进制数字。

以上文段采自百度百科。 了解更多: 二进制数 八进制数 十进制 十六进制

2.c++中的二进制、八进制、十进制与十六进制用用scanf/printf表示

scanf格式:scanf(“%格式符”,&变量名); printf格式:printf(“%格式符”,变量名);

二进制:无 八进制:o 十进制:d,i,u(无符号) 十六进制:x(输出输出小写字母),X(输出时输出大写字母)

3.各进制间的转换(重点)

十进制转换任意进制(进制最大为16):

#include #include using namespace std; char ch[6]={'A','B','C','D','E','F'}; void js(int x,int y) { int a[17],i,j,k=0; if(x int x,m; cin>>x>>m; js(x,m);//x:十进制数,m:转化为的进制 return 0; }

二转八:

#include "stdafx.h" #include "iostream" #include "string" using namespace std; string BinStrToOctStr(string str) { string str_Oct = ""; int num = str.size() / 3; int remder = str.size() % 3; if (remder != 0) { num++; for (int i = 0; i int sum=0,n=strlen(s); n--; for(int i=1;n>=0;i scanf("%o",&n); printf("%d",n); return 0; }

八转十六:

#include using namespace std; int n; int main() { scanf("%o",&n); printf("%X",n); return 0; }

十转十六:

#include using namespace std; int n; int main() { scanf("%d",&n); printf("%X",n); return 0; }

十六转十:

#include using namespace std; int n; int main() { scanf("%x",&n); printf("%d",n); return 0; }

十六转八:

#include using namespace std; int n; int main() { scanf("%x",&n); printf("%o",n); return 0; }

十转八:

#include using namespace std; int n; int main() { scanf("%d",&n); printf("%o",n); return 0; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有