文档章节

按位运算符操作

Barudisshu
 Barudisshu
发布于 2014/08/19 15:10
字数 278
阅读 181
收藏 5

C语言中提供了6个位操作符。这些运算符只能作用于整形操作数,即只能作用于带符号或者无符号的char、short、int、long类型:

& 按位与(AND)
| 按位或(OR)
^ 按位异或(XOR)
<< 左移
>> 右移
~ 按位取反(一元运算符)

下面以整形int为例进行说明(为了便于说明,设置二进制只有8位):

#include "stdio.h"

int main(int argc, char const *argv[])
{
    // 位操作符,只能作用于带符号,或则无符号的基本数据类型
    int n = 4;
    // 4的二进制表示为100
    printf("%d\n", n & ~0);     //按位与100 & 11111111 = 00000100 即4

    printf("%d\n", n | ~0);     //按位或100 | 11111111 = 11111111 
                                //为负数,减1取反得00000001 即-1

    printf("%d\n", n ^ ~0);     //按位异或100 ^ 11111111 = 11111011
                                //为负数,减1取反得00000101 即-5

    printf("%d\n", n << 2);     //左移两位得00010000 即4 * (2^2) = 16
    printf("%d\n", n >> 2);     //右移两位得00000001 即1
    printf("%d\n", ~n);         //取反的11111011 即-5
    return 0;
}



© 著作权归作者所有

Barudisshu
粉丝 27
博文 62
码字总数 70723
作品 0
茂名
程序员
私信 提问
python学习05:Python位运算符详解

位运算符通常在图形、图像处理和创建设备驱动等底层开发中使用。使用位运算符可以直接操作数值的原始 bit 位,尤其是在使用自定义的协议进行通信时,使用位运算符对原始数据进行编码和解码也...

太空堡垒185
10/09
26
0
C语言自学《三》---- 条件判断

算术比较 下面列出了两个操作数用于比较的算术比较运算符 它们的运算结果会得到int类型的值,如果为真则结果为1,如果为假结果为0 这些表达式称为逻辑表达式或者布尔表达式,因为每个表达式都...

罗眯眯
2014/03/17
235
0
Swift - 运算符

运算符是一中算数逻辑运算符号,用于告诉编译器执行一个数学或逻辑运算。 Swift 提供了以下几种运算符: 算术运算符 比较运算符 逻辑运算符 位运算符 赋值运算符 区间运算符 其他运算符 本章...

Albert_Lee
2017/11/16
0
0
Java 运算符

Java 运算符 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组: 算术运算符 关系运算符 位运算符 逻辑...

北國丶江山
2016/09/05
16
0
JAVA 按位运算符的解释

按位运算符 Java定义了几个按位运算符,可以将其应用于整数类型long,int,short,char和byte。 按位运算符对位执行,并执行逐位运算。假设a = 60和b = 13; 现在以二进制格式,他们将如下 - ...

逐梦的Man
2017/05/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx+tomcat配置https

1、nginx配置https和【proxy_set_header X-Forwarded-Proto $scheme;】 2、java代码: String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServe......

perofu
24分钟前
4
0
必看的Linux系统新手进阶老手心得

不知道从什么时候起,linux这个话题变得越来越普及,成为大家经常讨论的话题。无论在网络上还是实际生活中,竟然很多人都在纠结学习linux的问题。网络上给的答案千千万万,而却还有很多人踌躇...

Linux就该这么学
27分钟前
4
0
Spring Boot 配置元数据指南

1. 概览 在编写 Spring Boot 应用程序时,将配置属性映射到 Java bean 上是非常有用的。但是,记录这些属性的最好方法是什么呢? 在本教程中,我们将探讨 Spring Boot Configuration Proces...

liululee
30分钟前
3
0
foreach查找子类

$list = $menu_model -> menu_list();$parent_list = [];foreach ($list as $v){ if ($v['pid'] == 0) { $parent = $v; foreach ($list as $v1) ......

小小小壮
42分钟前
3
0
基于 HTML5 Canvas 实现的 TP-LINK 电信拓扑设备面板

前言 今天我们以真实的 TP-LINK 设备面板为模型,完成设备面板的搭建,和指示灯的闪烁和图元流动。 先来目睹下最终的实现效果:http://www.hightopo.com/demo/blog_tplink_20170511/index.h...

htdaydayup
48分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部