菜鸟请教单片机C编程中0x80,0x0f, 0xf0,0xc0都是什么意思。。。

Python022

菜鸟请教单片机C编程中0x80,0x0f, 0xf0,0xc0都是什么意思。。。,第1张

C语言里0x表示后面的数是16进制数,16进制数可以包含0~9,a,b,c,d,e,f。它与10进制对应如:0x80 = 8 * 16 + 0 = 1280x0f = 0*16 + 15 = 150xf0 = 15 * 16 + 0 = 2400xc0 = 12 * 16 + 0 = 192C语言里面乘法是星号*,如4*5

"|"在c语言中是逻辑"或"的意思,即两个进行或运算的元素中,只要其中一个的值为真,结果就为真。

0x40和0x80的二进制表示分别为:1000000和10000000

执行"|"运算:

1000000

10000000

——————

11000000

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

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

addr &0x80 是位与表达式,0x80的二进制码是1000 0000,用0x80和addr进行与(&)操作,意味着将addr中低7位清零,仅保留最高的1位。那么,if(addr&0x80)的意思就是判断addr的最高位是否为1。加入addr代表地址线的话,这条语句的含义就是检测8位地址线的第7位(最低位为0位)是否置1了。