位运算
来源:互联网 发布:windows引导修复工具 编辑:程序博客网 时间:2024/06/07 03:02
1、简介
& :按位与,主要用于将某个数 清零 或 取某几位
| :按位或,常用来将某个数的某一位 设为 1
^ :按位异或,常用来做特定位的反转,或与 0 异或 从而保留原值
例: 交换两数
int a=2 , b=3; 用异或交换两个数
a = a^b; // 0010^0011 = 0001 (a=1)
b = a^b; // 0001^0011 = 0010 (b=2)
a = a^b; // 0001^0010 = 0011 (a=3)
~ :按位取反
<<:按位左移,左移时不超出数据界限则,相当于 *2^n,左移后右端补0,
>>:按位右移,左端补 0 or 1,视原数符号而定
2、不同长度数据位运算
若进行位运算的两数长度不同,则运算时系统将二者按 右端对齐,左端补 0 or 1
3、3种编码方式
原码:符号位 + 真值的绝对值
反码:负数则在原码的基础上,符号位不变,其余各位取反
正数的反码为其本身
补码:负数则在反码的基础上+1
正数的补码为其本身
4、位段
定义:以位为单位定义结构体(或联合体)中的成员变量所占空间
格式:type [var] : digit
注:type 只能为 int 、unsigned int 、signed int 三种类型
var是位段名称,为可选参数,即可省略
digit 是成员所占的二进制位数
例:
struct node
{
unsigned int m: 4; // 位段a,占4位
unsigned int : 0; // 无名位段,占0位
unsigned int n : 4; // 位段b,占4位
int a :32; // 位段c,占32位
};
0 0
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- el表达式
- python matplotlib中文显示问题
- C#中的异常语句
- 手把手教你画太极图
- 2416开发记录七: platform驱动之LED(misc)
- 位运算
- jQuery.noConflict() 函数详解
- 【Windows】在windows 8上搭建FTP服务器
- opencv2.4.9安装编译及调试
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- 3.5!——阶乘的插值(python)
- Android内存优化另辟蹊径
- 爬虫 - 开发网络爬虫应该怎样选择爬虫框架
- 黑客攻破网站涂鸦特效(强烈建议看看)