单片机C语言入门

合集下载

51单片机及C语言入门教程

51单片机及C语言入门教程

51单片机及C语言入门教程本教程将介绍51单片机及C语言的入门知识,帮助初学者快速掌握这两个方面的基本内容。

以下是本教程的详细内容:一、51单片机概述(200字)51单片机是由Intel公司推出的一种常见的单片机芯片,具有广泛应用的特点。

它采用了Harvard结构,具有8位数据总线和16位地址总线。

其主要特点是结构简单、易于学习、应用广泛,适用于各种嵌入式系统。

二、C语言基础(300字)C语言是一种高级编程语言,具有跨平台、可移植性强等特点,被广泛应用于各种软件开发和嵌入式系统中。

学习C语言的基础知识是学习51单片机编程的必要前提。

C语言基础知识主要包括数据类型、变量、常量、运算符、表达式、流程控制语句等内容。

这些知识是学习C语言和51单片机编程的基础,需要仔细理解和掌握。

三、51单片机编程入门(400字)1. 搭建开发环境:首先需要安装51单片机的开发工具,如KeilC51等。

然后,连接单片机开发板和电脑,确保硬件连接正确。

2.了解开发板:学习使用51单片机的开发板是学习51单片机编程的第一步。

具体包括开发板上各个接口的功能和使用方法。

3.编写第一个程序:根据教材或教程,编写第一个简单的程序,如让LED灯闪烁等。

学习如何通过C语言编写程序,将其烧录到单片机中,并运行和调试。

四、C语言与51单片机的应用(300字)在学习了C语言和51单片机的基础知识之后,可以进一步学习它们的应用。

1.输入输出操作:学习如何通过51单片机与外部设备进行输入输出操作,如控制LED灯的亮灭、读取按键输入等。

2.定时器和中断:学习如何使用51单片机的定时器和中断功能来实现定时任务和外部事件处理。

3.串口通信:学习如何通过51单片机的串口通信功能与其他设备进行数据交换和通信。

五、实例项目及拓展应用(200字)完成了基础学习后,可以尝试一些实例项目,如温度测量系统、遥控器、电子钟等。

同时,可以进一步学习其他相关知识,如LCD显示、SPI 通信等,以扩展自己的应用能力。

单片机C语言编程学习

单片机C语言编程学习

单片机C 语言编程学习一、概述在一个集成电路芯片上集成微处理器、存储器、I/0接口电路,从而构成了单片机。

Intel公司推出了MCS-51系列单片机:集成8位CPU、4K字节ROM、128字节的RAM、4个8位并口、一个全双工串行口、2个16位定时器/计数器。

寻址范围64K,并有控制功能较强的布尔处理器。

二、预备知识<一>、电平特性1、数字电路中只有两种电平:高和低(本课程中)定义单片机为TTL电平:高+5V 低0V2、RS232电平:计算机的串口(-9V~15V) 高-12V 低+12V (+3V~+15V)所以计算机与单片机之间通讯时需要加电平转换芯片max232。

<二>、二进制与十六进制的表示及转换1、二进制:数字电路中的两种电平特性决定了它:0 0 6 110 12 11001 1 7 111 13 11012 10 8 1000 14 11103 11 9 1001 15 11114 100 10 1010 16 100005 101 11 10112、十六进:是二进制的简短表示形式。

十进制中的0-15分别表示为十六进制的0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F3、熟练掌握二进制与十六进制之间的转换。

规律:一般把四个二进制数放在一起转换成一个十六进制数,转换时先把二进制数转换成十进制数,再把十进制数转换成十六进制数。

如:0001B -> 1 -> 1HB表示为二进制,H为十六进制1001B -> 9 -> 9H1010B -> 10 -> AH0010 1100 -> 44 -> 2CH4、二进制各种对制关系:<三>、二进制数的逻辑运算1. “与”运算“与”运算是实现“必须都有,否则就没有”这种逻辑关系的一种运算。

运算符为“· ”, 其运算规则如下:0·0=0, 0·1=1·0=0, 1·1=12. “或”运算“或”运算是实现“只要其中之一有,就有”这种逻辑关系的一种运算, 其运算符为“+”。

51单片机C语言入门教程

51单片机C语言入门教程

51单片机C语言入门教程单片机是一种集成电路,可以完成各种功能。

C语言是一种高级编程语言,可以用来编写单片机的程序。

本文将介绍51单片机C语言的入门教程。

一、选择合适的开发环境选择合适的开发环境是学习51单片机C语言的第一步。

常用的开发环境有Keil C51、SDCC、IAR Embedded Workbench等。

这些开发环境都提供了开发工具和编译器,方便编写和调试代码。

二、了解51单片机的基本结构三、学习C语言的基本语法学习C语言的基本语法是学习51单片机C语言的基础。

C语言包括数据类型、变量、运算符、控制流语句等等。

学习C语言的基本语法可以参考相关的C语言教程。

四、掌握51单片机的特殊功能寄存器51单片机具有一些特殊功能寄存器,可以实现各种功能。

例如,P0是一个I/O口,可以用来控制外部设备的输入和输出;TMOD和TCON分别是定时器/计数器的模式和控制寄存器,可以实现定时和计数功能。

掌握这些特殊功能寄存器可以为后面的单片机编程做好准备。

五、编写第一个51单片机C语言程序编写第一个51单片机C语言程序可以帮助巩固前面学习的知识。

可以从简单的LED闪烁程序开始,逐步扩展到其他功能。

编写程序的过程中要注意语法的正确性和逻辑的合理性。

六、调试程序调试程序是保证程序正确运行的关键。

可以使用仿真器或者调试器对程序进行调试。

调试程序可以查看程序的运行状态、变量的值等等,帮助定位错误并进行修复。

七、深入学习更高级的C语言特性一旦掌握了基本的51单片机C语言编程,可以深入学习更高级的C语言特性。

例如,函数的使用、数组的应用、结构体和指针等等。

这些高级特性可以使程序更加模块化和灵活。

八、练习和实践练习和实践是巩固51单片机C语言编程知识的最好方法。

可以选择一些小项目或者例程进行练习,将理论知识应用于实际。

总结:通过以上的步骤,我们可以初步学习和掌握51单片机C语言的编程。

当然,这仅仅是入门级别的教程,还有很多更深入的知识需要进一步学习和探索。

单片机编程入门学习C语言

单片机编程入门学习C语言

单片机编程入门学习C语言随着科技的不断发展,单片机已经成为了现代电子设备中必不可少的一部分。

而要想进行单片机编程,掌握C语言是非常重要的基础知识。

本文将介绍单片机编程入门学习C语言的步骤和方法。

一、了解单片机和C语言的基本概念单片机是一种集成了处理器、存储器和输入输出设备的微型计算机系统。

它相比于传统计算机的优点在于体积小,功耗低。

而C语言是一种通用的高级编程语言,具有结构化、模块化和可移植性强的特点。

二、学习C语言的基本语法和数据类型要想进行单片机编程,首先需要学习C语言的基本语法和数据类型。

C语言的基本语法包括变量、运算符、表达式、控制语句等。

对于单片机编程来说,常用的数据类型有整型、字符型和浮点型。

三、掌握C语言的输入输出函数在单片机编程中,输入输出函数非常重要。

通过输入函数,可以从外部设备获取数据;通过输出函数,可以将结果显示到外部设备上。

C语言提供了一些常用的输入输出函数,例如scanf和printf函数。

四、了解单片机的编程环境和开发工具为了进行单片机编程,我们需要了解单片机的编程环境和相应的开发工具。

常用的单片机编程环境有Keil和IAR等,它们提供了编写、调试和下载单片机程序的功能。

五、学习单片机的相关知识和常用接口单片机编程不仅仅是学习C语言,还需要了解单片机的相关知识和常用接口。

例如,了解单片机的内存结构、寄存器和位操作等,以及掌握常用的串口通信、并口通信和定时器等接口的使用方法。

六、编写简单的单片机程序并进行调试在掌握了C语言的基本语法和单片机的相关知识之后,可以开始编写简单的单片机程序并进行调试。

通过编写小型的实践项目,可以更好地理解和巩固所学的知识。

七、扩展学习更高级的单片机编程知识一旦掌握了单片机编程的基础知识,可以进一步学习更高级的单片机编程知识。

例如,学习操作系统的原理和应用、学习更复杂的数据结构和算法等。

八、参与单片机编程相关的项目和竞赛为了提高单片机编程的实践能力,可以参与单片机编程相关的项目和竞赛。

单片机C语言入门教程

单片机C语言入门教程

单片机C语言入门教程学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。

下面是分享的单片机C语言入门教程,一起来看一下吧。

Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部份组合在一起。

学习之前请先安装KEILC51软件,在学会使用汇编语言后,学习C 语言编程是一件比较容易的事,我们将通过一系列的实例介绍C语言编程的方法。

所示电路图使用89c51单片机作为主芯片,这种单片机性属于80C51系列,其内部有8K的FLASHROM,可以反复擦写,非常适于做实验。

89c51的P1引脚上接8个发光二极管,P3.2~P3.4引脚上接4个按钮开关,我们的任务是让接在P1引脚上的发光二极管按要求发光。

简单的C程序介绍例1-1:让接在P1.0引脚上的LED发光。

单灯闪烁程序#include"reg51.h"//这一句是将51的常用端口,内部寄存器等的定义文件包含进这段程序sbitP1_0=P1^0;voidmain(){ P1_1=0;}这个程序的作用是让接在P1.0引脚上的LED点亮。

下面来分析一下这个C语言程序包含了哪些信息。

1)"文件包含"处理。

程序的第一行是一个"文件包含"处理。

所谓"文件包含"是指一个文件将另外一个文件的内容全部包含进来,所以这里的程序虽然只有4行,但C编译器在处理的时候却要处理几十或几百行。

这里程序中包含REG51.h文件的目的是为了要使用P1这个符号,即通知C编译器,程序中所写的P1是指80C51单片机的P1端口而不是其它变量。

这是如何做到的呢?打开reg51.h可以看到这样的一些内容:sfrP0=0x80;sfrP1=0x90;sfrP2=0xA0;sfrP3=0xB0;sfrPSW=0xD0;sfrACC=0xE0;sfrB=0xF0;sfrSP=0x81;sfrDPL=0x82;sfrDPH=0x83;sfrPCON=0x87;sfrTMOD=0x89; sfrTL0=0x8A; sfrTL1=0x8B; sfrTH0=0x8C; sfrTH1=0x8D; sfrIE=0xA8; sfrIP=0xB8; sfrSCON=0x98; sfrSBUF=0x99; sbitCY=0xD7; sbitAC=0xD6; sbitF0=0xD5; sbitRS1=0xD4; sbitRS0=0xD3; sbitOV=0xD2; sbitP=0xD0; sbitTF1=0x8F; sbitTR1=0x8E; sbitTF0=0x8D; sbitTR0=0x8C; sbitIE1=0x8B;sbitIE0=0x89; sbitIT0=0x88; sbitEA=0xAF; sbitES=0xAC; sbitET1=0xAB; sbitEX1=0xAA; sbitET0=0xA9; sbitEX0=0xA8; sbitPS=0xBC; sbitPT1=0xBB; sbitPX1=0xBA; sbitPT0=0xB9; sbitPX0=0xB8; sbitRD=0xB7; sbitWR=0xB6; sbitT1=0xB5; sbitT0=0xB4; sbitINT1=0xB3; sbitINT0=0xB2; sbitTXD=0xB1; sbitRXD=0xB0;sbitSM1=0x9E;sbitSM2=0x9D;sbitREN=0x9C;sbitTB8=0x9B;sbitRB8=0x9A;sbitTI=0x99;sbitRI=0x98;熟悉80C51内部结构的读者不难看出,这里都是一些符号的定义,即规定符号名与地址的对应关系。

51单片机及C语言入门教程

51单片机及C语言入门教程

51单片机及C语言入门教程注:排成16开版式,是为了方便自已打印阅读。

请不要用于非法用途。

2007.12.2051单片机及C语言入门教程第一课 建立您的第一个C项目使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。

KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。

因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。

以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。

KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。

(安装的方法和普通软件相当这里就不做介绍了)安装好后,你是不是迫不及待的想建立自己的第一个C程序项目呢?下面就让我们一起来建立一个小程序项目吧。

或许你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果。

首先当然是运行KEIL51软件。

怎么打开?噢,天!那你要从头学电脑了。

呵呵,开个玩笑,这个问题我想读者们也不会提的了:P。

运行几秒后,出现如图1-1的屏幕。

图1-1启动时的屏幕接着按下面的步骤建立您的第一个项目:(1)点击Project菜单,选择弹出的下拉式菜单中的New Project,如图1-2。

接着弹出一个标准Windows文件对话窗口,如图1-3,这个东东想必大家是见了N次的了,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。

在"文件名"中输入您的第一个C程序项目名称,这里我们用"test",这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows文件规则的文件名都行。

零基础学单片机c语言程序设计

零基础学单片机c语言程序设计

零基础学单片机c语言程序设计
1、了解单片机基本知识:包括单片机结构、单片机工作原理以及常见的单片机类型及其特点;
2、学习单片机操作系统:学习C的编程语言接口,掌握使用C语言在单片机上编写程序的标准;
3、具体实现:了解各种输入输出设备的特性,如:LCD屏、I2C、ADC等,学习使用C语言对这些设备进行控制;
4、模拟实验:学会如何使用单片机编程软件,编写C语言程序,在软件上模拟单片机系统操作,掌握应用单片机C语言编程规范;
5、调试:学习如何进行单片机调试,了解常用的调试技术,比较各种调试工具的使用;
6、系统集成:学习如何把了解的硬件及软件部件快速集成,成为可以识别的功能模块,进行系统集成;
7、实际应用:了解单片机在具体实际应用中的特点,比如电器控制、安全报警控制、机器人控制等,能够应用C程序编写上述应用程序。

单片机C语言入门教程

单片机C语言入门教程

单片机C语言入门教程一、简介在现代电子技术领域中,单片机是一种关键的组成部分。

而C语言是一种强大的编程语言,被广泛应用于单片机开发中。

本教程旨在帮助读者快速入门单片机C语言编程。

二、C语言概述C语言是一种面向过程的编程语言,它结合了高级语言和汇编语言的特点。

C语言具有简洁、灵活和可移植的特点,非常适合单片机开发。

三、环境搭建在进行单片机C语言编程之前,我们需要搭建开发环境。

首先,我们需要选择一款合适的集成开发环境(IDE),例如Keil、IAR等。

然后,安装相应的编译器和调试工具。

最后,连接硬件设备并配置相应的开发板。

四、C语言基础1. 变量和数据类型:在C语言中,我们需要先声明变量并指定数据类型,然后才能进行相应的操作。

C语言中常用的数据类型包括整型、浮点型、字符型等。

2. 运算符和表达式:C语言支持多种运算符,包括算术运算符、赋值运算符、比较运算符等。

通过运算符和表达式的组合,我们可以实现各种复杂的逻辑操作。

3. 控制语句:控制语句用于控制程序的流程,常见的控制语句包括条件语句、循环语句和跳转语句。

通过合理使用这些语句,我们可以实现程序的灵活控制。

五、单片机编程基础1. 引脚配置:在进行单片机开发时,我们需要配置相应的引脚功能,包括输入、输出、中断等。

通过合理配置引脚,我们可以与外部设备进行交互。

2. 中断编程:中断是一种常用的单片机编程技术,它可以在特定的事件发生时,立即中断当前程序的执行,转而去处理中断服务程序。

通过合理使用中断,我们可以实现实时响应和处理外部事件。

3. 定时器编程:定时器是单片机中重要的计时功能模块,它可以用来生成精确的时间延时、产生周期性的定时事件等。

通过合理利用定时器,我们可以实现各种时间相关的功能。

六、案例实践在学习了C语言的基础知识和单片机编程技巧后,我们可以通过一些实践案例来加深对知识的理解和应用。

例如,通过控制LED灯的亮度或者控制舵机的角度等实践,来巩固所学内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机C 语言入门北方蓝芯科技()C 语言是一种功能强大、应用广泛、具有发展前途的计算机语言。

它既可用于系统软件的设计,也可用于应用软件的开发。

许多著名的系统软件都是由C 语言编写的。

建议初学者读谭浩强的《C 程序设计》,非常适合初学者自学用的一本书。

1、 C51的数据类型1)、字符型char有signed char 和unsigned char 之分,默认为signed char 。

它们的长度均为一个字节,用于存放一个单字节的数据。

对于signed char ,它用于定义带符号字节数据,其字节的最高位为符号位,“0”表示正数,“1”表示负数,补码表示,所能表示的数值范围是-128~+127;对于unsigned char ,它用于定义无符号字节数据或字符,可以存放一个字节的无符号数,其取值范围为0~255。

unsigned char 可以用来存放无符号数,也可以存放西文字符,一个西文字符占一个字节,在计算机内部用ASCII 码存放。

2)、int 整型分singed int 和unsigned int 。

默认为signed int 。

它们的长度均为两个字节,用于存放一个双字节数据。

对于signed int ,用于存放两字节带符号数,补码表示,数的范畴为-32768~+32767。

对于unsigned int ,用于存放两字节无符号数,数的范围为0~65535。

3)、long 长整型分singed long 和unsigned long 。

默认为signed long 。

它们的长度均为四个字节,用于存放一个四字节数据。

对于signed long ,用于存放四字节带符号数,补码表示,数的范畴为-2147483648~+2147483647。

对于unsigned long ,用于存放四字节无符号数,数的范围为0~4294967295。

4)、float 浮点型float 型数据的长度为四个字节,格式符合IEEE-754标准的单精度浮点型数据,包含指数和尾数两部分,最高位为符号位,“1”表示负数,“0”表示正数,其次的8位为阶码,最后的23位为尾数的有效数位,由于尾数的整数部分隐含为“1”,所以尾数的精度为24位。

5)、* 指针型指针型本身就是一个变量,在这个变量中存放的指向另一个数据的地址。

这个指针变量要占用一定的内存单元,对不同的处理器其长度不一样,在C51中它的长度一般为1~3个字节。

w w w .h r b n b c .c o mw w w .h r b n b c .c o m /b b s2、 C51的运算符和表达式1)、 赋值运算符赋值运算符“=”,在C51中,它的功能是将一个数据的值赋给一个变量,如x=10。

利用赋值运算符将一个变量与一个表达式连接起来的式子称为赋值表达式,在赋值表达式的后面加一个分号“;”就构成了赋值语句,一个赋值语句的格式如下:变量=表达式;执行时先计算出右边表达式的值,然后赋给左边的变量。

例如: x=8+9; /*将8+9的值赋绐变量x*/x=y=5; /*将常数5同时赋给变量x 和y*/在C51中,允许在一个语句中同时给多个变量赋值,赋值顺序自右向左。

在C 语言中,参加运算的对象个数称为运算符的“目”。

单目运算符是指参加运算的对象只有一个,如+10,–67,x++。

双目运算符是指参加运算的对象有两个,如2+3,7%3。

相同运算符连续出现时,有的运算符是从左至右进行运算,有的运算符是从右至左进行运算,C 语言中,将运算符的这种特性称为结合性。

加法(+)、减法(–)、乘法(*)与数学中的算术运算相同。

例如:3.5+4.7结果是8.2;3.5 – 4.7结果是–0.8;3.5*4.7结果是16.45。

除法运算(/)与数学中的除法不完全相同,它与参加运算的对象的数据类型相关。

当参加运算的两个对象均为整型数据时,其运算结果为数学运算结果的整数部分。

如7/4结果为1,而不是1.75。

若参加运算的两个对象有一个是实型或两个都是实型,那么运算结果为实际运算的值,如7/5.0的运算结果为1.4。

模运算的运算对象必须为整型,结果是相除后的余数,如7%5结果为2。

增1减1运算符都是单目运算符,用来对整型、实型、字符型、指针型变量或数组元素c .c o mb b s等变量进行加1或减1运算,运算的结果仍是原类型。

3)、关系运算符C51中有6种关系运算符: > 大于 < 小于 >= 大于等于 <= 小于等于 = = 等于 != 不等于关系运算用于比较两个数的大小,用关系运算符将两个表达式连接起来形成的式子称为关系表达式。

关系表达式通常用来作为判别条件构造分支或循环程序。

关系表达式的一般形式如下:表达式1 关系运算符 表达式2关系运算的结果为逻辑量,成立为真(1),不成立为假(0)。

其结果可以作为一个逻辑量参与逻辑运算。

例如:5>3,结果为真(1),而10= =100,结果为假(0)。

注意:关系运算符等于“= =”是由两个“=”组成。

4)、逻辑运算符C51有3种逻辑运算符: || 逻辑或 && 逻辑与 ! 逻辑非关系运算符用于反映两个表达式之间的大小关系,逻辑运算符则用于求条件式的逻辑值,用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。

逻辑与,格式:条件式1 && 条件式2当条件式1与条件式2都为真时结果为真(非0值),否则为假(0值)。

逻辑或,格式:条件式1 || 条件式2当条件式1与条件式2都为假时结果为假(0值),否则为真(非0值)。

逻辑非,格式: !条件式当条件式原来为真(非0值),逻辑非后结果为假(0值)。

当条件式原来为假(0值),逻辑非后结果为真(非0值)。

例如:若a=8,b=3,c=0,则!a 为假,a && b 为真,b && c 为假。

5)、位运算符C51语言能对运算对象按位进行操作,它与汇编语言使用一样方便。

位运算是按位对变量进行运算,但并不改变参与运算的变量的值。

如果要求按位改变变量的值,则要利用相应的赋值运算。

C51中位运算符只能对整数进行操作,不能对浮点数进行操作。

C51中的位运算符有:& 按位与 | 按位或w w w .h r b n b c .c o mw w w .h r b n b c .c o m /b b s^ 按位异或 ~ 按位取反 << 左移 >> 右移【例】设a=0x45=01010100B ,b=0x3b=00111011B ,则a&b 、a|b 、a^b 、~a 、a<<2、b>>2分别为多少?由01010100 & 00111011 00010000 得a&b=00010000b=0x10。

下面同解a|b=01111111B=0x7f 。

a^b=01101111B=0x6f 。

~a=10101011B=0xab 。

a<<2=01010000B=0x50。

b>>2=00001110B=0x0e 。

6)、复合赋值运算符C51语言中支持在赋值运算符“=”的前面加上其它运算符,组成复合赋值运算符。

下面是C51中支持的复合赋值运算符+= 加法赋值 + 减法赋值 *= 乘法赋值 /= 除法赋值 %= 取模赋值 &= 逻辑与赋值 |= 逻辑或赋值 ^= 逻辑异或赋值 ~= 逻辑非赋值 >>= 右移位赋值 <<= 左移位赋值 复合赋值运算的一般格式如下: 变量 复合运算赋值符 表达式 它的处理过程:先把变量与后面的表达式进行某种运算,然后将运算的结果赋给前面的变量。

其实这是C51语言中简化程序的一种方法,大多数二目运算都可以用复合赋值运算符简化表示。

例如:a+=6相当于a=a+6;a*=5相当于a=a*5;b&=0x55相当于b=b&0x55;x>>=2相当于x=x>>2。

3、 数据类型转换规则对数据进行运算时,要求参与运算的对象的数据类型相同(运算得到的运算结果的类型与运算对象也相同)。

因此,在运算过程中常常需要对变量或常量的数据类型进行转换,转换的方法有两种,一种是系统自动转换(又称为隐式转换);另一种是在程序中强制转换(又称为显式转换)。

1)、自动转换规则w w w .h r b n b c .c o mw w w .h r b n b c .c o m /b b s在不同类型数据的混合运算中,由系统自动实现转换。

转换规则如下:(1)若参与运算的数据的类型不同,则应先转换成同一类型,然后进行运算。

(2)将低类型数据转换成高类型数据后进行运算。

如int 型和long 型运算时,先把int 型转换成long 型后再进行运算。

类型的高低是根据其所占空间的字节数按从小到大的顺序排列的,顺序如下: char ,int ,long ,float ,double 。

(3)所有的浮点运算都是按照双精度进行运算的,即使仅含float 型单精度量运算的表达式,也要先转换成double 型,再作运算。

(4)char 型和short 型参与运算时,必须先转换成int 型。

例如,设有:float PI=3.14; int s,r=7; s=r*r*PI;因为PI 为单精度型,s 和r 为整型,在执行s=r*r*PI 语句时,r 和PI 都转换成double 型后再进行计算,运算结果也为double 型,右边的运算结果为153.86,但由于s 为整型,故应将赋值号右边的运算结果转换成整型(舍去小数部分),因此s 的值为153。

2)、 强制类型转换强制类型转换是通过类型转换运算来实现的,其语法格式如下:(类型说明符)(表达式)其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。

例如: (float) a 把a 转换为实型;(int)(x+y) 把x+y 的结果转换为整型;而(int)x+y 则只将x 转换为整型。

在使用强制类型转换时应注意以下问题:(1)类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y 则只是把x 转换成int 型之后再与y 相加。

(2)对于被转换的单个变量而言,无论是强制转换还是自动转换,都只是为了本次运算的需要而对变量的数据长度进行临时性转换,而不会改变变量定义时所声明的类型。

例如,设有:float f = –5.75; int x; x= (int)f;将f 强制转换成整数–5,因此x = –5,而f 本身的类型并未改变且其值仍为–5.75。

相关文档
最新文档