首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言最新教程第一章:初识C语言

早期的C 语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C语言开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代最优秀的程序设计语言之一!

C

C语言,顾名思义,它是一门语言,它和我们平常所讲的汉语和英语有着相同的功能,我们和中国人讲汉语,和外国人讲英语,那么和计算机,你就需要讲计算机”听得懂“”的语言,C语言就是这种语言。

汉字是由“偏旁部首”组成的,英文是由26个字母组成的,而C语言则是由“0”和1“”组成的。0和1不同的组合代表着不同的信息,计算机和微型芯片就是通过0和1不同的组合运转起来的。那么0和1是如何丰富计算机语言的呢?

二进制:学习C语言首先要先学习二进制,因

0和1

为计算机只认识0和1,你如果给它一个2,它就不认识了。学习二进制之前,我们先回顾一下什么是十进制,十进制就是“逢十进一,借一当十”,例如:0,1,2,3,4,5,6,7,8,9,;接下来个位变为0,十位加1,所以是10;同样二进制时“逢二进一,借一当二”:0,1;接下来应该是10B(B是二进制的后缀);所以在二进制中10代表的是十进制中的2。这个大家可以自己去尝试一下换算,总结一定的换算经验,道理都是一样的。

在举几个例子:数字2的二进制表示为10B,那么数字3为10B+1B=11B,数字4为11B+1B=100B;数字5为100B+1B=101B。以此类推,当十进制数为254时,对应二进制数为11111110B;从中我们可以发现十进制和二进制的转换规律:十进制数等于二进制数从左向右的值乘以对应位的位权2的n次方(n从0开始依次加1)的总和

二进制和十进制之间的转换

十六进制:十六进制和二进制大同小异,只不过十六进制是“逢十六进一,借一当十六”,另外十进制的“0~15”表示成十六进制为0~9表示不变,10对应的是A,11对应的是B,12对应的是C,13对应的是D,14对应的是E,15对应的是F;十六进制也有后缀“H”,如数字10为AH。不过在编程时我们一般使用前缀"0x",如"0xa"表示的是数字10,(这里不区分大小写);用法可以参考二进制。那么大家就要问了为什么有了二进制还要来十六进制呢?现在要大家用二进制写出数字254,大家会怎么写?11111110,没错,可是如果用十六进制呢?只要0xfe就可以了,而且十六进制计算机可以自动转换为二进制,这个大家在编程时多用用就会习惯了。

逻辑运算:在C语言中除了我们习惯的算术运算(就是加减乘除)还有逻辑运算,这是非常重要的。

1、逻辑“与”:“&”这是逻辑“与”的运算符,运算规则如下:0 & 0 = 0,0 & 1 = 0,1 & 0 = 0,1 & 1 =1;只有当两者都为1时结果才为1;在C语言中“&”表示的是“按位与”,如(01010101)&(11110000) = 01010000;相同位置的数进行逻辑与运算。

2、逻辑“或”:“|”这是逻辑“与”的运算符,运算规则如下:0 | 0 = 0,0 | 1 = 1,1 | 0 = 1,1 &|1 =1;只有当两者都为0时结果才为0;在C语言中“&”表示的是“按位或”,如(01010101)&(11110000) = 11110101;相同位置的数进行逻辑或运算。

3、逻辑“非”:“!”这是逻辑“与”的运算符,运算规则如下:!0 = 1,!1 = 0;逻辑“非”就是改变当前值,在C语言中不是0那就是1了,在C语言中“~”表示的是“按位取反”,如~11110000 = 00001111。(注意“!”运算只对单一位进行取反)。

4、“同或”:“⊙”这是逻辑“与”的运算符,运算规则如下:0 ⊙ 0 = 1,0 ⊙ 1 = 0,1 ⊙ 0 = 0,1 ⊙ 1 = 1;“同或”就是当两个数值相同时结果才为1,“同或”在C语言中没有规定的符号,不过在C语言中如何使用大家可以参考接下来的“异或”。

5、“异或”:“⊕”这是逻辑“与”的运算符,运算规则如下:0 ⊕ 0 = 0,0 ⊕ 1 = 1,1 ⊕ 0 = 1,1 ⊕ 1 = 0;“异或”就是当两个数值不相同时结果才为1,“异或”在C语言中的符号为“^”,它也是“按位异或”,如(01010101) ^ (11110000) = (10100101);

数据类型:这是贯穿C语言的内容,而且关系到程序能否运行。

常用的数据类型如下表:

数据类型

在C语言中存储单位都是按“字节”(Byte)进行计算的,一个字节占8个二进制位,例如上面的unsigned char(无符号字符类型)所表示的就是一个字节的类型,最小为00000000,最大为11111111;而char(带符号的字符类型)所表示的也是一个字节的类型,只是符号为占用最高位,而在二进制中1表示符号时为负号,0表示符号时为正号,而它的范围为-128~127,其中10000000表示为-128,这一点大家要注意。

整型:unsigned int和int占4个字节,也是4个unsigned char或char ,它所能表示的范围也就更大了,长整形和浮点型分别占多少字节大家也可以去百度一下,其中float和double中一些位表示整数部分,一些位表示小数部分,这些内容大家可以自己去探讨一下。

在这里要提醒大家合理的使用这些数据类型,因为计算机的存储是有限的,假如你要定义一个字符表示1,如果用char,可以这样char m = 1,也可以使用int m = 1;但是前者只占1个字节,而后者就占4个字节,其中3个字节就浪费了;当然如果你要表示256,用char就不行,因为char最大为127,所以,我们要合理使用数据类型,从一点一滴做起,这样才不会出现在逻辑上都想得通,但是实际程序运行出错的情况。

好了,今天就先写到这里,大家可以先消化一下,也欢迎大家给我提出宝贵的意见,每一天都和大家一起进步。

在接下来的学习过程中我准备使用Ubuntu系统和大家一起学习,大家可以在自己电脑上下载VMware虚拟机并下载Ubuntu镜像系统。这是很适合初学者使用的开发工具。需要我的Ubuntu镜像的可以私聊我。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180109A04RQR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券