C语言博客(5)编程基础之怎样理解八进制和十六进制?

在C语言的学习编程过程中,除了二进制,编程中也经常使用八进制和十六进制。这些也同样是编程基础的教学,要想成为C语言大神,这是一定要了解清楚的。


八进制有0~7共8个数字,基数为8,逢八进一,借一当八;十六进制中,用A来表示10,B表示11,C表示12,D表示13,E表示14,F表示15,因此有0~F共16个数字,基数为16,逢16进1,借1当16。例如:

  • 八进制 3072 = 3×83 + 0×82 + 7×81 + 2×80 = 1536 + 0 + 56 + 2 = 1594
  • 十六进制 E3F9 = 14×163 + 3×162 + 15×161 + 9×160 = 57344 + 768 + 240 + 9 = 58361
二进制、八进制、十进制、十六进制的对应关系
十进制 二进制 八进制 十六进制 十进制 二进制 八进制 十六进制
0 0 0 0 10 1010 12 A
1 1 1 1 11 1011 13 B
2 10 2 2 12 1100 14 C
3 11 3 3 13 1101 15 D
4 100 4 4 14 1110 16 E
5 101 5 5 15 1111 17 F
6 110 6 6 16 10000 20 10
7 111 7 7 17 10001 21 11
8 1000 10 8 18 10010 22 12
9 1001 11 9 19 10011 23 13

在C语言中,八进制通常以“0”开头(注意是数字 0,而不是字母 o),例如 0307;十六进制通常以“0x”或“0X”开头(不区分大小写),例如 0xE27 或 0X89F。

下面请看八进制和十六进制加法运算的两个例子。

1) 八进制加法:0107 + 0274 = 0403


图1:八进制加法运算

2) 十六进制加法:0XA2B + 0X276 = 0XCA1


图2:十六进制加法运算

这是面向普通人群的编程基础教学,我每次会在这个C语言博客里更新一些初学者需要的编程基础

下一篇我们要介绍进制之间的转换问题,敬请期待!

时间: 2024-10-06 10:19:01

C语言博客(5)编程基础之怎样理解八进制和十六进制?的相关文章

C语言博客(6)编程基础之进制之间的转换

在本人的C语言博客的内容中,前面两篇随笔对二进制.八进制和十六进制进行了说明,接下来讲一下不同进制之间的数字是如何转换的,这在编程中经常会用到,尤其是C语言. 其他进制向十进制转换 在C语言学习中,二进制.八进制和十六进制向十进制转换都是非常容易的,就是"按权相加". 所谓"权",也即"位权".例如,十进制第1位的位权为100=1,第2位的位权为101=10,第3位的位权为102=100:而二进制第1位的位权为20=1,第2位的位权为21=2,第

C语言博客(4)编程基础之怎样理解二进制思想以及数据的存储?

本次我要描述的编程基础的内容是怎样理解二进制思想以及数据的存储,这也是许多初学者需要的编程基础. 我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1.9.10.297.952 等,一个数字最多能表示九,如果要表示十.十一.二十九.一百等,就需要多个数字组合起来. 例如表示 5+8 的结果,一个数字不够,只能"进位",用 13 来表示:这时"进一位"相当于十,"进两位"相当于二十. 因为逢十进一,也因为只有 0~9 共十个数字,所以叫做十

C语言博客作业—一二维数组

一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 Begin 输入整数个数N 定义数组a[N] 输入数组a for(i 0 to N-1){//进行N次判断 for(j 0 to N-1) if(a[i]和a[j]相等) count加一 i等于0//第一次判断 使max=count; n=i;//n放下标,max放次数 i不等于0且count大于max 使max=count; n=i;//重新赋值 count为0//每次循环count为0

C语言博客(2)为什么选择C语言入门?

相信大部分的程序员都是会写一些C语言的,首先接触的也可能是C.可说到底为什么要从C语言开始学编程呢,为什么把C语言作为编程基础呢.是因为C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的,程序在内存中是一种怎样的状态,操作系统和用户程序之间有着怎样的"爱恨情仇",这些底层知识决定了你的发展高度,也决定了你的职业生涯. 所以如果你想在程序猿这条路上走得远,走向更高处,那么编程基础就一定要打好.所以可以从C语言入门开始学习

C语言博客作业--一二维数组

一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 定义变量n,i,j,max等于0,a[]10用于存放输入的值,b[10]用于存放a[]中各个数有多少个; 输入n的值 i从0开始,每次加1,输入a[i]的值,直到i==n结束循环 i从0开始,判断i是否<n,,进入下一步,每次加一,直到条件不满足 j从0开始,判断j是否<n,,进入下一步,每次加一,直到条件不满足 如果a[i]==a[j],b[i]加一 i从0开始,判断i是否 输出a[j

值得关注的10个python语言博客(转)

大家好,还记得我当时学习python的时候,我一直努力地寻找关于python的博客,但我发现它们的数量很少.这也是我建立这个博客的原因,向大家分享我自己学到的新知识.今天我向大家推荐10个值得我们关注的python博客,这些博客的博主都会定期的更新而且他们的文章都很不错.下面是博客列表: 1.首先第一个肯定是毋庸置疑的Planet Python这是最出名的python博客其中之一,快去看看,我希望你能找到对你有用的东西,昨天它还更新了呢! 2.第二个博客是lucumr,博主是flask的创始人(

值得关注的10个python语言博客 - WEB开发者

1.首先第一个肯定是毋庸置疑的Planet Python这是最出名的python博客其中之一,快去看看,我希望你能找到对你有用的东西,昨天它还更新了呢! 2.第二个博客是lucumr,博主是flask的创始人(一个python micro web framework) 3.第三个博客是love-python,我不知道我是怎么被它吸引的,但是我真得很喜欢这个博客,它有很多有用的知识和代码 4.第四个博客是Doug Hellmann,博主是PYMOTW(Python Module Of the We

值得关注的10个python语言博客

大家好,还记得我当时学习python的时候,我一直努力地寻找关于python的博客,但我发现它们的数量很少.这也是我建立这个博客的原因,向大家分享我自己学到的新知识.今天我向大家推荐10个值得我们关注的python博客,这些博客的博主都会定期的更新而且他们的文章都很不错.下面是博客列表: 1.首先第一个肯定是毋庸置疑的Planet Python这是最出名的python博客其中之一,快去看看,我希望你能找到对你有用的东西,昨天它还更新了呢! 2.第二个博客是lucumr,博主是flask的创始人(

C语言博客作业--字符数组

题目1:题目名称 本题PTA提交列表(要提交列表,不是结果) 设计思路(伪代码或流程图) 伪代码尽量文字描述,请用下面markdown符号渲染.如: 定义变量i表示XXXXX for i=0 to n-1 a[i]执行运算等等. end for 3.代码截图(注意,截图,截图,截图.不要粘贴博客上.不用用···语法去渲染) 4.本题调试过程碰到问题及PTA提交列表情况说明. PTA提交列表中的每个错误详细说明为什么及如何解决. 题目2,3同题目1 二.截图本周题目集的PTA最后排名.(2分) P