C语言是当前所有开发技术中使用较为广泛的一门语言,从它诞生之日起就深受程序员的喜爱。随着C语言的普及,后来的开发语言都或多或少地借鉴或遵循了它的一些模式。另外,C语言是计算机编程领域中使用最早的高级语言之一,它的出现推动了软件行业的迅猛发展。本章将简要介绍C语言的基本知识,为读者学习后面的内容打下基础。


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=8bit

1KB=1024B

1MB=1024KB

1GB=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×2m0×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语言/C++的学习裙【  141622001  】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

边看书边听视频,迅速掌握C编程技术的指南

内容提要

本书循序渐进、由浅入深地讲解了C语言开发的技术。全书共25章。本书不仅介绍了C语言的基础和核心知识(如开发工具、语法、运算符、表达式、输入/输出、流程控制、数组、字符串、函数),还讲解了C语言中的重点和难点(如指针、结构体、共用体和枚举、链表、位运算、预编译、文件操作、调试、内存管理、高级编程技术、算法、数据结构、网络编程技术等)。此外,本书还通过4个综合实例,介绍了C语言在综合项目中的应用。全书内容以“技术解惑”和“范例演练”贯穿全书,引领读者全面掌握C语言。

本书不但适用C语言的初学者,也适合有一定C语言基础的读者学习。

c语言 二进制输出_程序员入门C语言,需要掌握的4个基础知识相关推荐

  1. c语言 二进制输出_推荐收藏!C语言入门基础知识大全

    01C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成.格式.以及良好的书写风格,使小伙伴对c语言有个初步认识. 例1:计算两个整数之和的c程序: #include main() {i ...

  2. 匹配正则_程序员入门基础:python正则表达式贪婪匹配和非贪婪匹配

    此文为python正则表达式的高阶入门,正则基础入门请参考程序员入门基础:python的正则表达式. 一.贪婪匹配和非贪婪匹配 举例说明概念: print('非贪婪匹配',re.search('el+ ...

  3. javascript技术教程蔡敏_程序员都必掌握的前端教程之JavaScript基础教程(上)

    阅读本文约需要10分钟,您可以先关注我们,避免下次无法找到. 本篇文章成哥继续带大家来学习前端教程之JavaScript,网页的动态事件基本上都是靠它来实现的.下面我们就一起来学习内容吧! 01 Ja ...

  4. c语言代码表白_程序员教你表白:C/C++打造浪漫表白程序,找女朋友从现在开始...

    谁说C/C++程序员不浪漫???来来来一起打造一个浪漫的表白程序,配上好听的音乐,瞬间高大上的感觉. C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法 ...

  5. 程序员入门教程【非常详细】从零基础入门到精通,看完这一篇就够了 !

    零基础编程入门先学什么?编程语言有几百种,我们应该怎么选择.想学习编程,加入互联网行业,哪一个更有前途?在小白学习编程会有各种各样的问题,今天小编我就来为你解答. 一.怎么选择编程语言 编程语言有很多 ...

  6. c语言 二进制输出_收藏!C语言入门基础知识大全

    C语言中的逻辑值只有两个:真(true)和假(flase).用非零代表真,用零代表假.因此,对于任意一个表达式,如果它的值为零,就代表一个假值,如果它的值为非零,就代表一个真值.只要值不是零,不管是正 ...

  7. 程序员入门c语言还是java,先学java还是c语言?入门学哪种语言?

    很多刚接触编程语言的小伙伴都会有一个疑问先学 Java 还是 C 语言?今天 W3Cschool 小编就来和大家简单介绍一些,做个对比相信小伙伴们能够自行作出适合自己的判断. 在探讨先学 Java 还 ...

  8. Java植物名录程序_程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程的_________方法;二是建立线程实例。...

    沟通的目的是打造"3G团队",其中的"3G"具体指: "啊,时间过得真快啊!"中的"啊" 活塞与气缸盖.气缸壁共同组成燃 ...

  9. quot c语言数组压缩 quot,程序员之---C语言细节12(指针和数组细节,quot;//quot;的可移植性说明)...

    主要内容:指针和数组细节,"//"的可移植性说明 #include int main(int argc, char **argv) { int a[10]={1,2,3,4,5,6 ...

最新文章

  1. Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
  2. MySQL的系统数据库是_mysql数据库系统
  3. 虚拟网卡技术-VETH、MACVLAN、IPVLAN
  4. POJ 1236 学校网络间的强连通
  5. write up 杂项:啊哒
  6. 10-mysql-分组查询
  7. Oracle_PL/SQL developer拷贝粘贴中文乱码问题
  8. python识别鼠标在excel中选中的区域_[Excel技巧] 提高你工作效率的9个Excel技巧,职场新人必备...
  9. 2021-2025年中国超声波管道监测系统行业市场供需与战略研究报告
  10. 动态列从一表的数据汇总至另外一张表中
  11. Axios 请求配置参数详解
  12. 错误解决办法:gcc编译时提示对‘sqrt’未定义的引用
  13. 关于IDM下载器免费注册这件事
  14. 微型计算机原理偏移地址,微机原理及应用复习
  15. 学习plc编程需要什么基础
  16. somachine3.1 注册
  17. 云课堂 php代码,基于ThinkPHP二开高仿网易云课堂整站PHP源代码
  18. 文件系统模拟程序python_树莓派开发实战(第2版)
  19. 武汉Java开发就业怎么样?现在学习有前途吗?
  20. 小米手机显示崩溃日志

热门文章

  1. python爬虫应用实战-如何爬取好看的小姐姐照片?
  2. 数学建模上分利器,小论文中稿神器,赶快学习近15年来较新颖的智能优化算法!
  3. Matlab计时函数的使用
  4. 接口测试用例_【学习】接口测试用例编写和测试关注点
  5. Python入门100题 | 第075题
  6. LeetCode-动态规划基础题-62. 不同路径
  7. QT关于全局变量的申请以及使用,所有class可用同一个变量
  8. 机器学习多目标分类模型解法
  9. 【漫谈数据仓库】 如何优雅地设计数据分层
  10. Docker源码分析(十):Docker镜像下载