程序员入门C语言,需要掌握的4个基础知识
分类:网校动态日期:2024-08-27 09:12:09人气:
1.1 计算机应用基础
计算机(computer)是一种能接收和存储信息,并按照内部存储的程序对输入的信息进行加工、处理,然后把处理结果进行输出的高度自动化的电子设备。本节介绍计算机应用的基础知识,为读者学习后面的知识打下基础。
1.1.1 中央处理器
中央处理器就是我们平常说的CPU(Central Processing Unit),是一块超大规模的集成电路,是计算机的运算核心和控制核心。它主要包括算术和逻辑单元(Arithmetic and Logic Unit,ALU)和控制单元(Control Unit,CU)两大部件。此外,它还包括若干个寄存器和存储器及彼此之间的数据、控制与状态总线。它与内部存储器和输入/输出设备合称为电子计算机的三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。计算机的性能在很大程度上由CPU的性能所决定,而CPU的性能主要体现在运行程序的速度上。
1.1.2 位和字节
1.位
位(bit)又称为比特,bit是Binary System的缩写。在现实应用中,位有如下两个含义。
(1)它是计算机专业术语,是信息量单位。二进制数的一位所包含的信息就是一位,如二进制数0100就有4位。在计算机应用中,二进制数“0”和“1”是构成信息的最小单位,称作“位”或“比特”。
(2)二进制数字中的位是信息量的度量单位,为信息量的最小单位。数字化音响用电脉冲表达音频信号,“1”代表有脉冲,“0”代表脉冲间隔。如果波形中每个点的信息用4位一组的编码来表示,则每组编码有4位。位数越多,表达的模拟信号就越精确,对音频信号的还原能力越强。
2.字节
字节(Byte),是计算机信息技术中用于存储容量的一种计量单位,有时在一些计算机编程语言中也表示数据类型和语言字符。
在计算机应用中,由若干位组成1字节。字节由多少位组成取决于计算机的结构。通常来说,微型计算机的CPU多由8位组成1字节,并用此表示一个字符的代码。构成1字节的8位被看作一个整体,字节是存储信息的基本单位。在大多数情况下,计算机存储单位的换算关系如下:
1B=8bit1KB=1024B1MB=1024KB1GB=1024MB在上述关系中各个单位的具体说明如下:
- B:表示字节。
- bit:表示位。
- KB:表示千字节。
- MB:表示兆字节。
- GB:表示吉字节。
1.1.3 二进制
二进制是计算机技术中广泛采用的一种数制,是使用0和1两个数码来表示的数。二进制的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,这是由18世纪德国数理哲学大师莱布尼兹发现的。当前的计算机系统使用的基本上都是二进制系统,数据在计算机中主要是以补码的形式进行存储的。计算机中的二进制是一个非常微小的开关,用“开”来表示1,用“关”来表示0。因为它只使用0、1两个数字符号,所以非常简单方便,易于用电子方式来实现。
下面介绍如何将十进制数转换成二进制数。
(1)把正整数转换成二进制。
转换原则是除以2取余,然后倒序排列,高位补零。也就是说,将正的十进制数除以2,得到的商再除以2,依次类推,一直到商为0或1,然后在旁边标出各步的余数,最后倒着写出来,高位补零即可。例如,将十进制数字42转换为二进制的步骤为:42除以2得到的余数连在一起为010101,然后将得到的余数倒着排一下就会得到数字42,所对应的二进制数是101010。但是因为在计算机内部表示数的字节单位是定长的(如8位、16位或32位),所以当位数不够时,需要在高位补零。十进制数42转换成二进制数的结果是101010,它的前面缺少两位,因此将十进制数42转换成二进制数的最终结果是:00101010。
(2)把负整数转换成二进制。
转换原则是先将对应的正整数转换成二进制,最后对二进制数取反,最后将结果加1。以十进制负整数−42为例,将42的二进制形式(00101010)取反得到的结果是11010101,然后再加1的结果是11010110。所以负整数−42转成二进制数的最终结果是:11010110。
(3)把二进制整数转换成十进制。
转换原则是先将二进制数补齐位数。如果首位是0则代表它是正整数;如果首位是1则代表它是负整数。先看首位是0的正整数,补齐位数以后,得到n×2m的计算结果。其中,上标m表示二进制数字的位数,n表示二进制的某个位数。对于二进制数中的各位分别计算n×2m,然后将计算结果相加得到值的就为十进制数。比如将二进制数1010转换为十进制数的过程如下。
二进制 1 0 1 0
补齐位数 0 0 0 0 1 0 1 0
计算n×2m 0×27 0×26 0×25 0×24 1×23 0×22 1×21 0×20
计算结果 0 0 0 0 8 0 2 0
各位求和结果 10
所以将二进制数1010转换为十进制数的结果是10。
如果要转换的二进制数补足位数后首位为1,那么表示这个二进制数是负整数。此时,就需要先取反,然后再进行换算:例如二进制数11101011的首位为1,这时应先取反得到00010100,然后按照上面的计算过程得出10100对应的十进制数20,所以二进制数11101011对应的十进制数为−20。
1.1.4 编码格式
1.ASCII码
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码),是基于拉丁字母的一套计算机编码系统,主要用于表示现代英语和其他西欧语言。ASCII码是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
一个英文字母(不分大小写)占1字节空间,一个中文汉字占2字节空间。一个二进制数字序列在计算机中为一个数字单元,一般为8位二进制数。它的最小值为0,最大值为255。例如,一个ASCII码就是1字节。
2.Unicode编码
Unicode(又称为统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode编码是为了解决传统字符编码方案的局限性而产生的,它为每种语言中的每个字符都设定了统一并且唯一的二进制编码,以满足跨语言和跨平台进行文本转换、处理的要求。
最初Unicode编码的长度是固定的16位,也就是2字节代表一个字符,这样可以表示65536个字符。显然,若要表示各种语言中的所有字符,这是远远不够的。Unicode 4.0规范考虑到了这种情况,定义了一组附加字符编码。附加字符编码采用两个16位来表示,这样最多可以定义1 048 576个附加字符。目前,Unicode 4.0规范只定义了45 960个附加字符。
Unicode只是一个编码规范。目前实际实现的Unicode编码只要有3种:UTF-8、UCS-2和UTF-16。3种Unicode字符集之间可以按照相关规范进行转换。
3.UTF-8编码
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度的字符编码,又称为万国码。UTF-8由Ken Thompson于1992年创建,现在已经将它标准化为RFC 3629。UTF-8用1~6字节编码Unicode字符。在网页上它可以统一页面显示中文简体/繁体及其他语言(如英文、日文、韩文)。一个UTF-8编码的英文字符占用1字节;一个UTF-8编码的中文(含繁体)字符少数情况下占用3字节,多数情况下占用4字节;一个UTF-8编码的数字占用1字节。
边看书边听视频,迅速掌握C编程技术的指南
本书卖点
本书内容和服务有优势:
1,提供100个提高程序性能的技巧。
2,增加课后练习模块
3,继续发挥一本书包含三本书内容的优势,用从入门到精通的写法进行。
4,按照C11新版本写作,案例和内容删除过时的技术,让读者真正和现实项目结合起来。
5,赠送市面中符合读者需求的学习资料。
6,全视频讲解
7,开设辅导读者的视频课。
内容提要
本书循序渐进、由浅入深地讲解了C语言开发的技术。全书共25章。本书不仅介绍了C语言的基础和核心知识(如开发工具、语法、运算符、表达式、输入/输出、流程控制、数组、字符串、函数),还讲解了C语言中的重点和难点(如指针、结构体、共用体和枚举、链表、位运算、预编译、文件操作、调试、内存管理、高级编程技术、算法、数据结构、网络编程技术等)。此外,本书还通过4个综合实例,介绍了C语言在综合项目中的应用。全书内容以“技术解惑”和“范例演练”贯穿全书,引领读者全面掌握C语言。
上一篇:这才是你想要的C语言学习路线
下一篇:这才是你想要的C语言学习路线!
用户评论
这篇文章简直是编程新手的救星!从零开始学习C语言,这四个基础知识讲得既清晰又实用。我以前在自学编程时总是觉得无从下手,现在看来,原来只要掌握了这几个点,编程就变得简单多了。
有13位网友表示赞同!
我之前一直对C语言望而却步,但这篇文章让我对入门C语言充满了信心。它详细地介绍了基础知识,让我感觉好像有一个明灯指引着我前进的方向。
有13位网友表示赞同!
虽然我对编程有些基础,但看到这篇文章后还是学到了不少新知识。作者的讲解深入浅出,让人很容易就能理解并掌握这些基础知识。
有7位网友表示赞同!
对于初学者来说,这篇文章简直就是福音。作者将复杂的概念拆解成容易理解的小块,一步步引导我们入门。我非常感谢这份耐心和细致。
有6位网友表示赞同!
这篇文章的作者真是太贴心了!他不仅讲解了C语言的基础知识,还提供了一些实际应用的例子,让我在学习的同时也能看到理论与实践的结合。
有12位网友表示赞同!
对于一个完全不懂编程的人来说,这篇文章是绝佳的学习材料。它从零开始,一步步引导你进入编程的世界,让人感觉不那么害怕和不知所措。
有10位网友表示赞同!
作为C语言的初学者,我在这篇文章中找到了很多我一直在寻找的答案。作者的解释清晰明了,让我有信心继续探索更深层次的知识。
有19位网友表示赞同!
我一直在寻找适合初学者的C语言教程,直到发现了这篇文章。它不仅包含了基础知识,还提供了实用的技巧和建议,真的很有帮助。
有16位网友表示赞同!
这篇文章对我这样的编程新手来说太重要了。它不仅解决了我很多疑惑,还激发了我进一步学习的热情。感谢作者的辛勤工作!
有18位网友表示赞同!
对于那些对编程充满好奇但又不知道从何入手的人,这篇文章是一个很好的起点。它以一种循序渐进的方式,帮助你建立编程的基础。
有12位网友表示赞同!
我之前尝试自学C语言时遇到了很多困难,但这篇文章让我找到了方向。作者的讲解既专业又易懂,真的很棒!
有18位网友表示赞同!
作为一个编程爱好者,我很高兴看到这样一篇高质量的文章。它不仅介绍了C语言的基础知识,还提供了一些实用的建议,非常适合初学者。
有14位网友表示赞同!
对于那些想要开始编程旅程但不知道从哪里开始的人来说,这篇文章是他们的最佳选择。作者的指导清晰,让学习过程变得更加轻松愉快。
有6位网友表示赞同!
这篇文章是我找到的最好的C语言入门指南之一。作者通过生动的例子和详细的解释,成功地将复杂的概念简化,让初学者也能轻松理解。
有5位网友表示赞同!
我以前对C语言感到很困惑,但在读完这篇文章后,我发现自己对它有了全新的认识。作者的讲解方式非常有效,让学习过程变得有趣。
有16位网友表示赞同!
这篇文章为我打开了编程世界的大门。它不仅介绍了C语言的基础知识,还提供了一些实用技巧,帮助我在编程之旅上走得更远。
有20位网友表示赞同!
对于想学习C语言的朋友们,我强烈推荐这篇文章。它不仅内容丰富,讲解也非常清晰,让每一个知识点都易于理解和记忆。
有18位网友表示赞同!
作为编程初学者,我在这篇文章中找到了很多实用的信息。作者的耐心和细致让我深感敬佩,也让我更加热爱编程。
有6位网友表示赞同!