位操作

简介: 注意负数用补码表示

注意负数用补码表示


1、按位左移<< 即将二进制左移N位,舍弃高位,低位用0 填充, 注意符号位的丢失使数的正负转变


2、按位右移>> 即将二进制右移N位,舍弃低位,高位用符号位填充


3、按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0 主要用于未串的截取


按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取x的最低7位:x & 0177。 二是让某变量保留某几位,其余位置0,如以下代码让x只保留最低6位:x = x & 077。 1.清零


“按位与”通常被用来 使变量中的某一位清零 。如下例:


a=0xfe; //a=0b 11111110


a=a&0x55;


//使变量a的第1位 、第3位、第5位、第 7位清零 a= 0b 01010100


2.检测位


要知道一个变量中某一 位是‘1’还是‘0’ ,可以使用与操作来实 现。


a=0xf5; //a=0b 11110101


result=a&0 x08; //检测a的第三位, result=0


3.保留变量的某一位


要屏蔽某一个变量的其 它位,而保留某些位, 也可以使用与操作来实 现。


a=0x55; //a=0b 01010101


a=a&0x0f; //将高四位清零,而 保留低四位 a=0x05


4、按位或运算 按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1 “按位或”运算最普遍的应用就是对一个变量的某些位置‘1’。如下例:


5、按位异或运算 按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1  只有当且仅当其中的一个条件满足时 ,逻辑异或是一种排除性的或


两个位串信息的位差异的标志位, 1。 交换两个值,不用临时变量,假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现: a=a^b; b=b^a;     a=a^b;


1.翻转某一位 当一个位与‘1’作异或运算时结果就为此位翻转后的值。如下例: a=0x35; //a=0b00110101 a=a^0x0f; //a=0b00111010 a的低四位翻转


2.保留原值 当一个位与‘0’作异或运算时,结果就为此位的值。如下例: a=0xff; //a=0b11111111 a=a^0x0f;

//a=0b11110000 与0x0f作异或,高四位不变,低四位翻转


6求反运算 求反运算符~为单目运算符,具有右结合性。 其功能是对参与运算的数的各二进位按位求反。


7求反运算和异或运算的区别在于操作的个数,取反只有一个操作数,异或是两个操作数的相反


目录
相关文章
|
10月前
|
存储 C#
C# 逻辑位运符及运算原理 按位操作二进制
C# 逻辑位运符及运算原理 按位操作二进制
|
5月前
|
C语言
C语言自增减、逻辑运算、位运算、位移运算及三目运算操作
C语言自增减、逻辑运算、位运算、位移运算及三目运算操作
45 0
|
10月前
|
存储
【408计算机组成原理】—加减运算和溢出判断(八)
【408计算机组成原理】—加减运算和溢出判断(八)
|
11月前
位操作(异或骚操作)
位操作(异或骚操作)
41 0
深入理解位操作( 一)
深入理解位操作( 一)
75 0
|
编译器
C位操作
C位操作
161 0
C位操作
|
人工智能 BI
第三次笔记:算术逻辑单元 电路基本原理 加法器的设计 一位全加器 串行进位加法器 并行进位加法器 补码加减运算器 无符号整数加减法 标志位的生成
第三次笔记:算术逻辑单元 电路基本原理 加法器的设计 一位全加器 串行进位加法器 并行进位加法器 补码加减运算器 无符号整数加减法 标志位的生成
400 0
第三次笔记:算术逻辑单元 电路基本原理 加法器的设计 一位全加器 串行进位加法器 并行进位加法器 补码加减运算器 无符号整数加减法 标志位的生成
|
C语言 编译器
C语言里的左移和右移运算
在用gcc编译这段程序的时候编译器会给出一个warning,说左移位数>=类型长度.那么实际上i,j移动的就是1位,也就是33%32后的余数.在gcc下是这个规则,别的编译器是不是都一样现在还不清楚.
2073 0
|
存储 Web App开发 算法
二进制究竟有什么用?齐姐带你看看那些好玩儿的「位操作」
本篇终于讲到了齐姐文章里常常出现的分割线! 计算机说到底就是 0 和 1,所有的数在内存中都是以二进制的形式储存的。 而位操作,或者说位运算,就是直接对内存中的二进制位进行操作。 位运算可以说是我们的基本功,今天这篇文章就从以下角度和大家一起玩转位运算。
158 0
二进制究竟有什么用?齐姐带你看看那些好玩儿的「位操作」