1- C语言语法基础_第1页
1- C语言语法基础_第2页
1- C语言语法基础_第3页
1- C语言语法基础_第4页
1- C语言语法基础_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教学内容: 第1章:C语言语法基础第2章:C程序设计基础第3章:利用数组处理同类型的批量数据第4章:利用函数实现模块化程序设计第5章:灵活使用指针第6章:结构体、共用体、枚举类型及其应用第7章:常用的三种线性数据结构第8章:利用文件进行数据管理第9章:嵌入式技术基础实践方法C语言程序设计第1章C语言语法基础【学习内容】1.1C语言程序的特点1.2数据的基本类型及其表现形式

1.3运算符及表达式【学习目标】1.了解通用计算机和嵌入式计算机的区别;2.熟悉C语言程序的特点;

3.熟练使用VC++2010开发环境;

4.掌握C语言基本的数据类型(整型、字符型、实型),常量和变量;

5.掌握“算术、强制类型转换、赋值、关系、逻辑、位、逗号”7种运算符及其表达式。1.1C语言程序的特点

产生于20世纪70年代的C语言是国际上广泛流行的计算机高级编程语言,其优点:①语法灵活、运算符丰富;②模块化和结构化设计,程序可读性好;③可直接对硬件进行操作,能实现汇编语言的大部分功能;④生成的目标代码质量高,程序执行效率高;⑤程序可移植性好(与汇编语言相比),可用于各种型号的计算机和各种操作系统。

C语言既是通用计算机软件设计的基础语言,也是当前嵌入式软件设计的主流语言。通过本书的学习,可以奠定C语言的编程基础,同时也可以掌握嵌入式软件设计方法。1.1C语言程序的特点1、通用计算机与嵌入式计算机

微型计算机具有很大的通用性,所以又称通用计算机。测控领域的计算机系统是嵌入到应用系统中,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、成本、体积、可靠性、功耗严格要求的专用计算机系统,即嵌入式计算机系统,简称嵌入式系统(EmbeddedSystem)。通俗地说,除了通用计算机(如台式计算机和笔记本计算机)外,所有包含CPU的系统都是嵌入式系统,其中以微控制器(MicroControllerUnit,MCU,国内也称为单片机)为核心的嵌入式系统应用最广泛。MCU的硬件集成度越来越高,使得嵌入式硬件设计难度不断降低,因此嵌入式软件设计在整个嵌入式系统开发中所占的分量越来越大。社会对嵌入式软件设计人才的需求量也越来越大,其就业薪酬高。嵌入式软件设计的主流语言是C语言。C语言程序设计一般要经过4个基本步骤(VC++2010开发环境的使用方法和步骤请扫描教材中的二维码详细学习):

(1)编辑源程序(.c文件或

.h文件);

(2)对源程序进行编译,生成二进制目标文件(.obj文件);

(3)连接若干个源文件和库函数对应的多个目标程序,生成可执行文件(.exe文件);(4)运行程序。2、VC++2010开发环境的使用方法和步骤1.1C语言程序的特点【例1.1】将两个整数求和,并将这两个整数及求和结果输出在PC屏幕上。3、初识简单的C程序1.1C语言程序的特点#include<stdio.h>

//(1)预处理命令:包含输入输出头文件intmain(void)

//(2)主函数{ inta,b,s;

//(3)数据声明:定义3个整型变量a=123;b=456;

//(4)分别对变量a和b进行赋值s=a+b;

//(5)将求和结果赋给变量sprintf("ThisismyfirstCprogram.\n");//(6)原样输出一串字符printf("a=%d,b=%d,sum=%d\n",a,b,s);//(7)以十进制形式输出三个变量的值return0;

//(8)如程序正常结束,返回函数值0}可省略不写格式输出函数printf的用法1.1C语言程序的特点3、初识简单的C程序【例1.2】使用函数将两个整数求和,并将这两个整数及求和结果输出在PC屏幕上。#include<stdio.h>

//(1)预处理命令:包含输入输出头文件intadd(intx,inty);

//(2)函数声明intmain(void)

//(3)主函数{inta,b,s;

//(4)数据声明:定义3个整型变量a=123;b=456;

//(5)分别对变量a和b进行赋值s=add(a,b);

//(6)调用add函数(两个实际参数a、b)printf("ThisismysecondCprogram.\n");//(7)原样输出一串字符printf("a=%d,b=%d,sum=%d\n",a,b,s);//(8)以十进制形式输出三个变量的值}intadd(intx,inty)

//(10)定义add函数(两个形式参数x、y){

intz;

//(11)定义变量

z=x+y;

//(12)将求和结果赋给变量zreturn(z);

//(13)向主调函数求和结果}s=add(a,b);

(main函数)intadd(intx,inty)(add函数){

intz; z=x+y;

return(z);

}1.2数据的基本类型及其表现形式

1.2.1常量和变量1、常量1.2数据的基本类型及其表现形式

在程序执行过程中,其值不发生改变的量称为常量。根据书写方式,常量可分为直接常量和符号常量。(1)直接常量:如4、23;1.23;'a'、'b';''CHINA''等(2)符号常量:用#define指令,指定一个标识符代表一个常量。

例如,#definePI3.1415926//定义符号常量PI(代表常量3.1415926)

关于#define指令的使用方法,将在任务2.5中详细介绍。1.2.1常量和变量1、常量1.2数据的基本类型及其表现形式

用户定义的标识符不能与系统提供的关键字(参见附录B)同名。另外,标识符区分大小写,如Sum和sum是两个不同的标识符。说明:标识符是用来标识变量名、符号常量名、函数名、数组名、类型名、宏名、文件名的有效字符序列。C语言的标识符只能由字母、数字、下画线3种字符组成,且第一个字符必须是字母或下画线。

1.2.1常量和变量2、变量1.2数据的基本类型及其表现形式

在程序执行过程中,其值可以改变的量称为变量。变量必须“先定义,后使用”。定义变量后,编译系统为每个变量名分配对应的内存地址,即一个变量名对应一个存储单元。1.2.2整型数据1、整型常量1.2数据的基本类型及其表现形式

(3)十六进制整数:以0x开头的数。如0x123表示十六进制数123。在C语言中,整型常量(整型常数)有3种表示形式:(1)十进制整数:如123、-456、7。(2)八进制整数:以0开头的数。如0123表示八进制数123。归纳起来,有10种整型变量,在VC++系统中对应的数值范围如下:(1)整型变量的分类1.2.2整型数据2、整型变量1.2数据的基本类型及其表现形式

1.2.2整型数据2、整型变量1.2数据的基本类型及其表现形式

(2)整型变量在内存中的存储形式(以单字节整型数据为例)(3)定义整型变量的方法1.2.2整型数据2、整型变量1.2数据的基本类型及其表现形式

1)定义一个变量的格式:类型标识符变量名;

例如:inti;//定义有符号基本整型变量i

unsignedintj;//定义无符号基本整型变量j2)同时定义多个同类型变量的格式:类型标识符

变量名1,变量名2,变量名3,…;

例如:inti,j,k;//同时定义三个基本整型变量i、j、k

定义变量后,系统将根据变量的类型给变量分配对应大小的内存空间,用于存储该变量。例如:

shortint

i;//定义短整型变量i

i=10;//给变量i赋值练习:【例1.3】整型变量的定义、赋值和输出。1.2.3字符型数据1、字符常量1.2数据的基本类型及其表现形式

练习:【例1.4】输出转义字符。

用一对单撇号括起来的一个字符,称为字符常量,例如:'A','6','+'等。

C语言还有一种以

\开头的字符序列,称为转义字符。

请参考附录A,熟悉字符0~9、大写字母A~Z、小写字母a~z对应的ASCII码值。1.2.3字符型数据2、字符变量1.2数据的基本类型及其表现形式

字符变量用来存放字符,并且只能存放1个字符。其类型标识符是char。

例如:charc1,c2;//定义字符变量c1、c2c1='a';c2='b';//给变量c1赋值'a',变量c2赋值'b'3、字符型数据在内存中的存储形式及使用方法

一个字符变量在内存中占一个字节。字符型数据在内存中存储的是该字符对应的ASCII码。

字符型数据的存储形式与单字节整型数据相同。因此,字符型可以当作单字节整型。

#include<stdio.h>intmain(void){

charc1,c2,c3,c4;

//定义字符变量c1='a';c2='A';//给字符变量赋字符常量

c3=97;c4=65;//给字符变量赋整数(ASCII码值)printf("%c,%c,%c,%c\n",c1,c2,c3,c4);//以字符形式输出字符变量的值printf("%d,%d,%d,%d\n",c1,c2,c3,c4);//以十进制形式输出字符变量的值printf("%x,%x,%x,%x\n",c1,c2,c3,c4);//以十六进制形式输出字符变量的值}1.2.3字符型数据1.2数据的基本类型及其表现形式

【例1.5】字符变量的定义、赋值和输出。#include<stdio.h>intmain(void){charc1,c2;//定义字符变量

c1='a';c2='b';

//给字符变量赋字符常量

c1=c1-32;c2=c2-32;

//将字符变量对应的ASCII码值更新

printf("%c,%c\n",c1,c2);//以字符形式输出变量c1和c2的值

}1.2.3字符型数据1.2数据的基本类型及其表现形式

【例1.6】输出给定小写字母对应的大写字母。4、字符串常量

1.2.3字符型数据1.2数据的基本类型及其表现形式

字符串常量是由一对双撇号括起来的字符序列。例如:"CHINA","Cprogram","a","$12.5"字符常量和字符串常量的区别:因此字符串常量"CHINA"在内存中占用6个字节。【思考】字符常量'a'和字符串常量"a"有何区别?练习:【例1.7】输出字符串常量及其占用内存的字节数。1.2.4实型数据1.2数据的基本类型及其表现形式

1、实型常量

(2)指数形式。如123e3或123E3都代表123×103。要注意字母e(或E)之前必须要有数字,且e后面的指数必须为整数,如e2、4e2.5、.e3、e都不是合法的指数形式。

实型常量也称实数,在C语言中,实数有两种表示形式:

(1)十进制小数形式。它由数字和小数点组成(注意,必须要有小数点)。如:0.123、123.、123.0、0.0。

一个实数可以有多种指数表示形式。在程序中以指数形式输出一个实数时,会以规范化的指数形式输出。

例如123.456的规范化指数形式是1.23456e2。2、实型变量

根据数据的数值范围和精度,实型变量的类型主要有单精度(float)型和双精度(double)型。需要注意:实型数据在计算机内存中的存储精度有限,不可能得到完全精确的数值。1.2.4实型数据1.2数据的基本类型及其表现形式

#include<stdio.h>intmain(void){

floatx;//定义实型变量xx=12.3;//将实型常数12.3赋给变量xprintf("%f\n",x);//以小数形式输出变量x的数值printf("%e\n",x);//以指数形式输出变量x的数值}【例1.8】实型变量的定义、赋值和输出。练习:【例1.9】利用sizeof运算符测试系统中数据类型的长度。1.2.5变量的初始化1.2数据的基本类型及其表现形式

C语言允许在定义变量的同时,对变量赋初值,即变量的初始化。例如:

inta=3;

//定义整型变量a,并赋初值3floatb=1.23;//定义实型变量b,并赋初值1.23charc='a';

//定义字符变量c,并赋初值'a'

当一次定义同类型的多个变量时,可以给全部变量或部分变量赋初值。inta,b,c=5;

//定义a、b、c三个整型变量,只给c赋初值5注意,对3个变量赋相同的初值3时,不能写成:inta=b=c=3;inta=1,b=2,c=3;

//定义a、b、c三个整型变量,并赋不同的初值inta=3,b=3,c=3;

//定义a、b、c三个整型变量,并赋相同的初值3练习:【例1.10】变量的初始化和输出。1.2.6常变量1.2数据的基本类型及其表现形式

练习:【例1.11】常变量的初始化与输出。

在定义变量并对变量初始化时,如果加上关键字const,则变量的值在程序运行期间不再改变,这种变量称为常变量(constantvariable),也称为只读变量。例如:constinta=5;

//用const声明整型变量a为常变量,其值始终是51.3运算符及表达式

1.3.1算术运算符及其表达式1.3.2强制类型转换运算符及其表达式1.3.3赋值运算符及其表达式1.3.4关系运算符及其表达式1.3.5逻辑运算符及其表达式1.3.6位运算符及其表达式1.3.7

逗号运算符及其表达式1.3.1算术运算符及其表达式1、基本的算术运算符1.3运算符及表达式

(2)-

减法运算符,或负值运算符,如7-2、-4

(1)+

加法运算符,或正值运算符,如2+3、+5

(4)/

除法运算符,如5/2、5.0/2

(3)*乘法运算符,如2*3

(5)%模运算符,或称求余运算符,%两侧均应为整型数据,如5%2的值为1

说明:

【例1.12】将三位十进制整数的百位数、十位数和个位数分离。#include<stdio.h>intmain(void){inta=123;

intb,c,d;//3个变量分别存放个位数、十位数和百位数

b=a%10;//获得个位数

a=a/10;//右移1位,变量a的值更新为12

c=a%10;//获得十位数

a=a/10;//右移1位,变量a的值更新为1

d=a%10;//获得百位数

printf("123的百位数=%d\n",d);//输出百位数

printf("123的十位数=%d\n",c);//输出十位数

printf("123的个位数=%d\n",b);//输出个位数}1.3.1算术运算符及其表达式1、基本的算术运算符1.3运算符及表达式

练习:【例1.13】将一个正整数倒序输出。【例1.14】不同类型数据之间的混合运算。自增运算符++:使变量的值自增1,相当于i=i+1。自减运算符--:使变量的值自减1,相当于i=i-1。有以下4种形式的表达式:

i++

表达式先用i的值,然后对i的值加1(先用后加)

++i

先对i的值加1,然后表达式用i加1的值(先加后用)--i

先对i的值减1,然后表达式用i减1的值(先减后用)

i--

表达式先用i的值,然后对i的值减1(先用后减)1.3.1算术运算符及其表达式2、自增、自减运算符1.3运算符及表达式

可见,由自增(自减)运算符构成不同形式的表达式时,对变量而言,自增1(自减1)都具有相同的效果,但对表达式而言却有着不同的值。1.3.1算术运算符及其表达式2、自增、自减运算符【例1.15】自增、自减运算符的应用。1.3运算符及表达式

说明:

(1)自增、自减运算符只能用于变量,不能用于常量或表达式。如5++或(a+b)++都是不合法的。(2)自增、自减运算符常用在循环语句中,使循环变量自动加1、减1,这将在后续单元中学习。#include<stdio.h>intmain(void){int

i=3,j=3,k=3,x=3;

printf("%d\t",i++);printf("i=%d\n",i);

printf("%d\t",++j);printf("j=%d\n",j);

printf("%d\t",k--);printf("k=%d\n",k);

printf("%d\t",--x);printf("x=%d\n",x);}3、算术表达式和运算符的优先级与结合性1.3.1算术运算符及其表达式1.3运算符及表达式

算术表达式:用算术运算符和括号将运算对象(常量、变量或表达式)连接起来的、符合C语法规则的式子。例如:a+b*c-5/2+'a'。C语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级高低次序执行,例如:x-y*z相当于x-(y*z)。如果在一个运算对象两侧的运算符的优先级相同,则按照规定的“结合方向(结合性)”处理。

算术运算符的结合方向为“自左向右(左结合性)”,即先左后右。因此a+b-c相当于(a+b)-c。附录C给出了C语言运算符的优先级和结合性,供查询参考。1.3.2强制类型转换运算符及其表达式1.3运算符及表达式

强制类型转换表达式的一般形式:(类型标识符)(表达式)例如:

(int)i

将i转换为整型(int)x+y

将x转换成整型后,再与y相加(float)(x+y)

将x+y的结果转换为float型#include<stdio.h>intmain(void){inti;//定义整型变量i

floatx=2.4F;//定义实型变量x,并赋初值

i=(int)x;//将实型变量x强制转换为int型

printf("x=%f,i=%d\n",x,i);}【例1.16】将实型数据强制转换为整型。练习:【例1.17】将整型数据强制转换为实型。1、简单赋值运算符“=”及其表达式1.3.3赋值运算符及其表达式1.3运算符及表达式

简单赋值表达式的形式:变量=

表达式

赋值表达式中的“表达式”,又可以是一个赋值表达式。赋值运算符是按照“自右向左”的结合顺序。

根据附录C,赋值运算符的优先级仅高于逗号运算符,而低于其他运算符。因此赋值表达式a=3*5等价于a=(3*5),i=a+b等价于i=(a+b)。

赋值表达式“

a=5”的值是5。执行运算后,变量a的值也是5。【思考】分析下面各赋值表达式中变量a的值。a=5+(c=7)a=b=c=33a=(b=6)/(c=2)a=(b=2)+(c=5)1273

因此

a=b=5与

a=(b=5)等价。2、复合的赋值运算符及其表达式1.3.3赋值运算符及其表达式1.3运算符及表达式

在简单赋值运算符“=”之前加上其他运算符,可构成复合的赋值运算符。a*=3等价于a=a*3a-=3等价于a=a-3a*=b+2等价于a=a*(b+2)a+=3等价于a=a+3a/=3等价于a=a/3a%=3等价于a=a%3①a*=b+2②

a*=b+2(将“a*”移到“=”右侧)③a=a*

(b+2)

(在“=”左侧补上变量名a,并对b+2外加括号)练习:【例1.18】复合赋值运算符的使用。3、类型转换

如果赋值运算符“=”两侧的数据类型不一致,但同为数值型数据,在赋值时,系统会自动进行类型转换。下面介绍3种常见的情况。1.3.3赋值运算符及其表达式(1)将整型数据赋给整型变量1.3运算符及表达式

【例1.19】将无符号整型数据赋给有符号整型变量。正数变成了负数

#include<stdio.h>intmain(void){

unsignedchara=255;

signedcharb;b=a;printf("a=%d\n",a);printf("b=%d\n",b);}3、类型转换1.3.3赋值运算符及其表达式

如果赋值运算符“=”两侧的数据类型不一致,但同为数值型数据,在赋值时,系统会自动进行类型转换。下面介绍3种常见的情况。(1)将整型数据赋给整型变量1.3运算符及表达式

【例1.20】将有符号整型数据赋给无符号整型变量。负数变成了正数

#include<stdio.h>intmain(void){

signed

chara=-1;

unsignedcharb;b=a;printf("a=%d\n",a);printf("b=%d\n",b);}3、类型转换1.3.3赋值运算符及其表达式

如果赋值运算符“=”两侧的数据类型不一致,但同为数值型数据,在赋值时,系统会自动进行类型转换。下面介绍3种常见的情况。(1)将整型数据赋给整型变量1.3运算符及表达式

【例1.21】将短字节整型数据赋给长字节整型变量。无误#include<stdio.h>intmain(void){

unsignedchar

a=255;

unsignedint

b;b=a;printf("a=%d\n",a);printf("b=%d\n",b);}3、类型转换1.3.3赋值运算符及其表达式

如果赋值运算符“=”两侧的数据类型不一致,但同为数值型数据,在赋值时,系统会自动进行类型转换。下面介绍3种常见的情况。(1)将整型数据赋给整型变量【例1.22】将长字节整型数据赋给短字节整型变量。1.3运算符及表达式

有误!如何解决?#include<stdio.h>intmain(void){

unsignedchar

a=255,b=1;

unsignedchar

c;c=a+b;printf("a=%d\n",a);printf("b=%d\n",b);printf("c=%d\n",c);}3、类型转换1.3.3赋值运算符及其表达式

如果赋值运算符“=”两侧的数据类型不一致,但同为数值型数据,在赋值时,系统会自动进行类型转换。下面介绍3种常见的情况。(2)将实型数据赋给整型变量【例1.23】将实型数据赋给整型变量。1.3运算符及表达式

只取了整数部分#include<stdio.h>intmain(void){

floata=1234.567F;

intb;b=a;printf("a=%f\n",a);printf("b=%d\n",b);}3、类型转换1.3.3赋值运算符及其表达式1.3运算符及表达式

数值不变,但变成了实数

如果赋值运算符“=”两侧的数据类型不一致,但同为数值型数据,在赋值时,系统会自动进行类型转换。下面介绍3种常见的情况。(3)将整型数据赋给实型变量【例1.24】将整型数据赋给实型变量。

通过上述例题可以看出,在赋值运算中,需要根据数据的类型和数值的范围为变量指定合适的类型,必要时还需要借助强制类型转换运算符,以防出错。

#include<stdio.h>intmain(void){

inta=1234;

floatb;b=a;printf("a=%d\n",a);printf("b=%f\n",b);}1.3.4关系运算符及其表达式1、关系运算符及其优先级次序

优先级相同(高)优先级相同(低)③>大于①<小于②<=小于或等于⑥!=不等于④>=大于或等于⑤==等于

关系运算符的优先级低于算术运算符,高于赋值运算符。a=b>c等价于

a=(b>c)例如:

c>a+b等价于

c>(a+b)a==b<c等价于

a==(b<c)a>b==c等价于

(a>b)==c1.3运算符及表达式

2、关系表达式1.3.4关系运算符及其表达式1.3运算符及表达式

用关系运算符将两个表达式连接起来的式子,称为关系表达式。a+b>c+d(a=3)>(b=5)'a'<'b'a==3例如:a>ba!=3

关系表达式的值是一个逻辑值:“真”或“假”。例如关系表达式“5==3”的值为“假”,“5>=0”的值为“真”。

关系运算结果,以“1”代表“真”,以“0”代表“假”。关系表达式逻辑值(真、假)关系表达式的值(1、0)a>ba>b+ca!=b+ca>b>c若a=3,b=2,c=1,则:真假假假1000练习:【例1.25】考察关系表达式的值。1.3.5逻辑运算符及其表达式1、逻辑运算符及其优先级次序

1.3运算符及表达式

假③!逻辑非①&&逻辑与②||逻辑或

逻辑运算的真值表aba&&ba||b!a真真真假假真假假真真假真假真假假真!a==b||c<d等价于a>b&&c>d等价于a+b>c&&x+y<d等价于几种运算符的优先级次序如右图所示:!(非)

高算术运算符关系运算符&&和||赋值运算符低(a+b)(>c)(x+y)(<d)&&(a>b)(c>d)&&(!a)(==b)||(c<d)2、逻辑表达式的值

1.3.5逻辑运算符及其表达式1.3运算符及表达式

C语言规定,参与逻辑运算的操作数以非0代表“真”,以0代表“假”。逻辑表达式的值,即逻辑运算结果,以数值1代表“真”,以0代表“假”。例如:(1)若a=3,则!a的值:(4)'a'&&'b'的值:(2)若a=3,b=4,则a&&b的值:(3)3&&0||-4的值:0111在逻辑表达式的求解过程中,有时并非所有的运算都被执行。

例如:

(1)a&&b:只有当a为真(非0)时,才需要判断b的值。只要a为假,就不必判断b的值,此时整个表达式已确定为假。(2)a||b:只要a为真(非0),就不必判断b的值。只有a为假,才判断b。【思考与练习】

1.3.5逻辑运算符及其表达式1.3运算符及表达式

分别写出下列数学表达式对应的C语言表达式:

(1)80≤i<89

(2)i<0或i≥100

(3)i≠0i>=80&&i<89i<0||

i>=100i!=0练习:【例1.26】考察逻辑表达式的值。1.3.6位运算符及其表达式1.3运算符及表达式

位运算符含义&按位与|按位或^按位异或~按位取反<<左移>>右移说明:1)位运算符中除“~”以外,均为二目运算符,即要求两侧各有一个运算量。

2)运算量只能是整型或字符型数据,不能是实型数据。

在嵌入式软件设计中,经常用到位运算符:对二进制位进行运算。例如,0x23与0x45按位与:00100011(0x23)

&)01000101(0x45)0&0=0,0&1=0,1&0=0,1&1=11、“按位与”运算符(&)00000001(0x01)1.3.6位运算符及其表达式1.3运算符及表达式

特殊用途:“与0清零、与1保留”——可对数据的某些位清零,某些位保留不变。例如,将0x23的高4位清零,低4位保留不变。00100011(0x23)

&)00001111(0x0f)0000

0011

(0x03)2、“按位或”运算符(|)1.3.6位运算符及其表达式1.3运算符及表达式

例如,0x23与0x45按位或:00100011(0x23)

|)01000101(0x45)

特殊用途:“或1置1、或0保留”——可对数据的某些位置1,某些位保留不变。0|0=0,0|1=1,1|0=1,1|1=1例如,将0x23的高4位置1,低4位保留不变。00100011(0x23)

|)11110000(0xf0)01011101(0x67)1111

0011

(0xf3)例如,0x23与0x45按位异或:00100011(0x23)

^)01000101(0x45)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论