16进制,谁能教教我16进制怎么算呢?

2022-02-05 10:39:59 百科大全 投稿:一盘搜百科
摘要N进制的数可以用0(N-1)的数表示超过9的用字母A-F   例如:   10进制的32表示成16进制就是:20   16进制的32表示成10进制就是:3×16^1+2×16^0=50   6.1 为

 N进制的数可以用0—(N-1)的数表示超过9的用字母A-F

16进制,谁能教教我16进制怎么算呢?插图

  例如:

  10进制的32表示成16进制就是:20

  16进制的32表示成10进制就是:3×16^1+2×16^0=50

  6.1 为什么需要八进制和十六进制?

  编程中,我们常用的还是10进制……毕竟C/C++是高级语言16进制。

  比如:

  int a = 100,b = 99;

  不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。

  但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:

  0000 0000 0000 0000 0110 0100

  面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。

  用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢?

  2、8、16,分别是2的1次方,3次方,4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。在下面的关于进制转换的课程中,你可以发现这一点。

  6.2 二、八、十六进制数转换到十进制数

  6.2.1 二进制数转换为十进制数

  二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……

  所以,设有一个二进制数:0110 0100,转换为10进制为:

  下面是竖式:

  0110 0100 换算成 十进制

  第0位 0 * 20 = 0

  第1位 0 * 21 = 0

  第2位 1 * 22 = 4

  第3位 0 * 23 = 0

  第4位 0 * 24 = 0

  第5位 1 * 25 = 32

  第6位 1 * 26 = 64

  第7位 0 * 27 = 0 +

  —————————

  100

  用横式计算为:

  0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100

  0乘以多少都是0,所以我们也可以直接跳过值为0的位:

  1 * 22 + 1 * 25 + 1 * 26 = 100

  6.2.2 八进制数转换为十进制数

  八进制就是逢8进1。

  八进制数采用 0~7这八数来表达一个数。

  八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……

  所以,设有一个八进制数:1507,转换为十进制为:

  用竖式表示:

  1507换算成十进制。

  第0位 7 * 80 = 7

  第1位 0 * 81 = 0

  第2位 5 * 82 = 320

  第3位 1 * 83 = 512 +

  ————————–

  839

  同样,我们也可以用横式直接计算:

  7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839

  结果是,八进制数 1507 转换成十进制数为 839

  6.2.3 八进制数的表达方法

  C,C++语言中,如何表达一个八进制数呢?如果这个数是 876,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或12345670,那么它是八进制数还是10进制数,都有可能。

  所以,C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。这就是八进制数在C、C++中的表达方法。

  由于C和C++都没有提供二进制数的表达方法,所以,这里所学的八进制是我们学习的,CtC++语言的数值表达的第二种进制法。

  现在,对于同样一个数,比如是100,我们在代码中可以用平常的10进制表达,例如在变量初始化时:

  int a = 100;

  我们也可以这样写:

  int a = 0144; //0144是八进制的100;一个10进制数如何转成8进制,我们后面会学到。

  千万记住,用八进制表达时,你不能少了最前的那个0。否则计算机会通通当成10进制。不过,有一个地方使用八进制数时,却不能使用加0,那就是我们前面学的用于表达字符的“转义符”表达法。

TAGS: 进制  表示  就是  教教  字母  例如  超过  可以  
声明:一盘搜百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系 88888@qq.com