C语言中和有什么作用啊?谢谢,特别是单片机编

2020-11-23 11:46:07 字数 6136 阅读 5297

1楼:墨菲如此

>>这是移位的运运算符。和等号连用就是类似于+=这样。

c语言中“>>=,<<=,&=,^=,|=”分别表示什么意思?请举例说明

2楼:弋风

1、c语言中的 >>= 意思为:右移后

赋值**示例为:

x = 8;x >>=3;

右移后结果为:00000000000000000000000000000001

2、c语言中的<<= 意思为:左移后赋值**示例为:

x = 8;

x <<=3;

左移后赋值结果为:00000000000000000000000001000000

3、c语言中的&= 意思为:按位与后赋值**示例为:

x = 0x02;

x &= 0x01;

按位与后的结果为:0x00

4、c语言中的^= 意思为:按位异或后赋值**示例为:

x = 0x02;

x ^= 0x01;

按位异或的结果为:0x03 等同于00115、c语言中的|=意思为:按位或后赋值**示例为:

x = 0x02;

x|= 0x01;

按位或的结果为:0x03 等同于0011

3楼:匿名用户

补充一个骚操作,>>=用作除法取平均值。

假如for(;i<8;i++);i>>=3;结果为1,所以》=3相当于除以8。

原理:我们知道,十进制下,每向每向右移1位,结果相当于除以10,在二进制下就相当于除以2,所以上面的**相当于8/2^3,这个方法只能够用于求2的n次方(比如2、4、8、16、32……)的平均值,优点是效率比除法快(在没有硬件除法器的单片机上,和编译器优化也有关)。

当然,反过来,向左移位就是乘法了。

4楼:匿名用户

复合赋值。a>>=b相当于 a = a >> b; 以此类推。

a>>=b 表示把二进制a右移b位,比如:

a=8;

a>>=3;

即:二进制8:00000000000000000000000000001000

右移3位:00000000000000000000000000000001

结果是1,再把右移结果赋值给a, 即最后a=1。

<<= 同上,只不过是左移赋值。

&= 是按位与之后赋值,^=是按位异或之后赋值,|=是按位或之后赋值。与,或以及异或的操作很简单:

101010101010101010

&011100|011100^011100

-----------------------------

001000111110110110

5楼:匿名用户

a = 0010(0x02)

a >>= 1; (a 右移1位并把右移的结果重新赋值给a) 此时a = 0001(0x01);

a <<= 1;(a左移1位并把左移的结果重新赋值给a) 此时 a = 0100(0x04);

a &= 0x01;( a与0x01 按位与,并把按位与的结果重新赋值给a)。此时a = 0x0;

a |= 0x01;( a与0x01 按位或,并把按位或的结果重新赋值给a)。此时a = 0011(0x03);

a ^= 0x01;( a与0x01 按位异或,并把按位异或的结果重新赋值给a)。此时a = 0x03;(异或的意思就是,该位均为相同的则该位结果为0,该位均为不同的则该位结果为1)

51单片机c语言中<<=和|=的意思是什么?

6楼:匿名用户

u8***data<<=1 相当于 u8***data = u8***data<<1,

u8***data|=u8temp 相当于 u8***data = u8***data | u8temp。

类似的还有:+=、 -=、 *= 、 /= 、%=、>>= 、&= 、~= 、 ^=。

这在c语言中叫做复合赋值运算符。格式如下:

变量 复合赋值运算符 表达式

解释:首先对变量进行某种运算(运算符就是"="前的运算符,运算对象就是"="后面的表达式或变量或常数),然后再将结果赋值回该变量(就是“=”)。

7楼:匿名用户

这两个都是特殊的赋值运算符。这类运算符的形式为op=,为双目运算符,即需要左右都有操作表达式。其中左侧必须为可改变值的变量,右侧可以为任意表达式。

对于op=的运算符,其含义为:

aop=b; 等同于a = a op b;

对于题目中涉及的两个运算符,分别为:

a <<= b; 等效于a = a << b; 即a左移b位后赋值给a。

左移操作的规则为,高b位舍去,其它依次向高位(左侧)移动b位,低b位添加0。

a|=b;等效于a=a|b;即a与b执行按位或操作,结果赋值给a。

或操作的规则为,按位执行,只有相同位上的值均为0时,结果的对应位上为0,否则结果对应位上为1。

8楼:匿名用户

a <<= b; 就是 a = a << b;

a |= b; 就是 a = a | b;

<<单片机的c语言编程>>中的c语言和全国计算机等级考试考的c语言有什么区别?

9楼:匿名用户

编译软件不一样;单片机用的

比较多的是keil c51,其他咱也没用过,生成的是hex或者是bin文件。计算机等级考试考的c语言用的比较多的是tc、vc,生成的是exe可执行文件。

但两者的用法,大至相同。前者重点在电子电路硬件,后者重点在软件方面。单从编程角度来讲,后者要比前者复杂点。各人观点,仅供参考。

10楼:匿名用户

基本上是一样的,只是单片机中的c语言中有一些专用的寄存器,定义方式而已。

计算机c语言中小于等于是=<还是<=?**等,谢谢!

11楼:西城老友

在所有的c语言中,包括单片机c语言,均是用<=来表示小于等于的。

c语言是一门通用计算机编程语言,应用广泛。c语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管c语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的c语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称mcu)以及超级电脑等作业平台。

由于标准的存在,使得几乎同样的c**可用于多种操作系统,如windows、dos、unix等等;也适用于多种机型。c语言对编写需要进行硬件操作的场合,优于其它高级语言。

参考资料红黑联盟.红黑联盟[引用时间2018-1-5]

12楼:匿名用户

<= ,第二个,你怎读就怎么写。

单片机c语言中|=什么意思?

13楼:卿枫凌

这个等价于a=a|b,和+=一个意思,这个是按位或的,单片机?有什么问题随时问哈。我也是搞这个的,一起研究哈

14楼:七彩虹科技****

同学你好,我是学嵌入式的,我们现在用单片机的话都是用的汇编,不过多数人还是用的c语言。要说学到什么程度呢,,,我个人觉得你把那些条件语句比如while(),if()等你要学扎实,比如说你要实现一个乘法口诀功能,因为段选和位选的原因我们必须将乘数、被乘数很好的、清楚的(比如亮1秒)显示在数码管上。那么你就必须会用循环语句。

当然这只是一个最基本的例子。我的意思呢就是其实谭浩强的那本书的后面的章节对你在单片机的编程用的并不多。一句话吧,注重基础。

祝你好运!

15楼:有信而成

|是一中运算,名称叫做“或”,计算方法是对两个数的二进制进行运算,例如3|5的结果是7|=是赋值运算,例如a|=7语句的意思就是a=a|7

16楼:佟钰塞职

|date|=0x80

等同于:data=data

|0x80;

意思是:用变量data的值与0x80做“按位或”运算,并将运算结果再赋值给变量data;

因0x80

写成二进制就是:10000000b;

所以等同于:data=data

|10000000b;

由“按位或”运算的特性可分析出,此语句的目的是要把变量data的值的最高位写成“1”,而不改变其它位的值,

17楼:萨觅桓心思

void

无值型和c语言的一样

void

delay()

一个延时函数

自定义的

void

time()

一个时间函数

可能是中断

后面没有interrupt

?自定以的

viod

main()

主函数自定义的

void

init()

初始化函数

自定义的

uchar

code

table

这个是定义了一个**

code是指要写入code区的

这样的表通常用来存储状态啊

数码管啊

什么的void

**gdisplay()

一个显示函数

自定义的

说不定是显示数码管的

uint

就是unsigned

intuchar

就是unsigned

char

你写的这些除了main都是自定义的~

这是51单片机编程语言。这个code是什么作用?在c语言中怎么没有?

18楼:昨夜谁梦遗

因为单片机ram很有限,这些数组里的内容是不变的,所以将他们保存到rom中,code关键字的作用就是告诉编译器把这些内容写到rom中

19楼:凉山之颠

你好,这个是**的意思,是定义一些十六进制的**的。c语言中是没有这个的,这也是单片机编程语言和c语言的一个差别

在单片机c语言编程中的0x代表什么意思啊?谢谢大侠指导

20楼:

■写程序时ox后面的数值表示是16进制的,和数值后面加h表示16进制的方法等效。

例如10h 是16 进制的16, 用ox方法来写就是ox10

即 ox10 = 10h (等于十进制的十六)

21楼:谁掉了十块钱

高级语言里面一般0x表示十六进制,0开头表示八进制,http://blog.csdn.

***/sunny***es/article/details/6666314,这个是讲浮点数的,建议你也去了解下,加深理解

22楼:匿名用户

0x表示其后的数字或者字符为16进制数据

23楼:寻灿者

16进制数据类型。。。。

单片机c语言中常用的头文件都有哪些?分别有什么作用啊?

24楼:匿名用户

reg51.h是专用寄存器文件,8031,8051都为reg它包括8051的sfr及其位定义,一般系统都必须包括这个

文件。absacc.h绝对地址文件。该文件是只定义了几个宏,以确定各存储空间的绝对地址。

stdlib.h,动态内存分配函数。

string.h缓冲区处理函数。

stdio.h输入输出流函数,流函数通过8051的窜口或者用户定义的io口来读取数据,默认为8051窜口.

25楼:

另外:对于51单片机,头文件为reg51.h,你用的应该是52单片机,故为 reg52.h

26楼:匿名用户

我觉得都是把数据库调出来

有事你需要某些东西

但是 放在某些库里

用的时候 就 需要调出来 申明