按位或的实际使用

int result = 0;
if (cs_config.enable_http)
{
    result |= 1;
}
if (cs_config.enable_https)
{
    result |= 2;
}
//例子2
enum HttpType
{
	IPV4    = 1,
	IPV6    = 2,
	HTTP    = 4,
	HTTPS   = 8
};
int type = IPV4;
if (setting.enable_http)
{
	type |= HTTP;
}
if (setting.enable_https)
{
	type |= HTTPS;
}
g_settings->SetOptionValue(InternetHTTPTypeKey, type);

按位或(OR) 按位或处理两个长度相同的二进制数,两个相应的二进位中只要有一个为1,该位的结果值为1。例如

0101(十进制5) OR 0011(十进制3) = 0111(十进制7)
在C类程序设计语言中,按位或操作符是"|"。这一操作符需要与逻辑或运算符(||)区别开来。

按位或能够将每一位看做旗标;在二进制数中的每一位可以表示不同的布尔变量。应用按位或操作可以将二进制数的某一位设为1。例如

0010(十进制2) 能够看做包含4个旗标的组合。第1,2,4旗标为0;第3个旗标为1。利用按位或可以将第1个旗标设置为1,而其他旗标不变。

0010(十进制2) OR 1000(十进制8) = 1010(十进制10) 这一技巧通常用来保存程序中的大量布尔变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值