LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 934|回复: 2

&,~,| 使用方法

[复制链接]
发表于 2004-10-13 15:01:53 | 显示全部楼层 |阅读模式
看了一个串口程序,下面是struct termios 数据结构里c_cflag成员奇偶和停止位的一些设置信息,Option.c_cflag &= ~PARENB
Option.c_cflag |= ~PARODD
Option.c_cflag &= ~CSTOPB
Option.c_cflag &= ~CSIZE
Option.c_cflag |= ~CS7
看了半天理解不了&,~,|是怎么搭配使用的,在www.gnu.org查了一些串口编程的,如:
termios-p->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP
|INLCR|IGNCR|ICRNL|IXON);
termios-p->c_oflag &= ~OPOST;
termios-p->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
termios-p->c_cflag &= ~(CSIZE|PARENB);
termios-p->c_cflag |= CS8
不知道哪儿有关于&,~,|简单介绍的资料
发表于 2004-10-18 18:50:57 | 显示全部楼层

回复: &,~,| 使用方法

这几个&,~,|都是位操作符,分别是与,求反,或运算,另外位操作符还有^(异或),<<(左移),>>(右移)
具体内容找本C语言的书来看,在位操作部分。

至于如何搭配使用,举个例子:
Option.c_cflag &= ~PARENB
运算过程如下:
Option.c_cflag = Option.c_cflag & (~PARENB)
先对PARENB取反,然后和Option.c_cflag进行与运算,最后赋值给Option.c_cflag

注:求反操作符(~)对变量中的各位取反.即1变成0,而0变成1。
 楼主| 发表于 2004-10-19 10:23:48 | 显示全部楼层
谢谢斑竹的耐心讲解
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表