位运算——综述
来源:互联网 发布:强力删除软件下载 编辑:程序博客网 时间:2024/05/22 03:16
位运算的学习资料
位运算中关于如何处理带符号整数类型的符号位并没有明确的规定,具体的要视平台而定,不过无符号类型就不存在这种问题了。
位运算的话,个人比较推荐matrix 67 写的关于位运算的博客,一共有四篇,名称如下:
位运算简介及实用技巧(一):基础篇
位运算简介及实用技巧(二):进阶篇(1)
位运算简介及实用技巧(三):进阶篇(2)
位运算简介及实用技巧(四):实战篇
(建议直接输入” 博客名+matrix67 “进行查找)
这四篇博文的程序部分大部分使用pascal,不过都比较直白、简单,对学习其他语言的人来说,问题也不大(实在看不懂,只看解析也行)。
在这里也推荐一下matrix67的博客,个人觉得这是我看过的最好的博客了,原因有两点:
①matrix67是大牛,他的博客自然也是深度与广度兼备。
②mareix67的博客直白易懂,很多人确实很大牛,对于某个算法理解的很深入,但往往一写出来,能意思清楚、连贯、直白、易懂的就真没多少了,毕竟搞IT的很多都是理工科出身,语文实在不咋地。(ps:matrix67是文科里的理科生)
在看了一堆资料后,在这里简要的把位运算的一些用处罗列一下,也好有个整体的概念:
1、位运算是直接的底层操作,合理使用位运算可以大大加快程序的运行速度。
比如:a=a*2 改成 a<<=1,a=a/2 改成 a>>=1;
2、位运算与集合。具体表现在用二进制的数位来代表某一元素,用一个数字来代表一个集合。
比如:有1到3这三个数,用右起第i个二进制位来代表数 i ,那么只有数字1的集合为:001==1,含有数字1,、2的集合为 011==3,空集为000==0;
3、状态压缩,比如:状压dp、hash;这个就不举例了,具体的可以自己去百度学习状压dp。
补充一下:
原码:二进制中第一个数表示是正数还是负数 ,剩下的数表示所要表示的数的绝对值.
比如,0010=2, 1010=-2
反码:因为原码在计算机中不方便,引入了反码,反码就是负数在二进制中除了第一个数表示符号外,其他的数都依次取反,
比如127=01111111,而-127=10000000;
补码:虽然反码方便但是在计算中会错(正数和负数的计算),因为0000=0,1111=-0=0;有两个数表示同一个数,所以在计算中会少一,补码就是在负数的反码上加上一。
比如-5=11111010(反码),补码为-5=11111011。
- 位运算——综述
- 位运算符—&
- 位运算符—|
- 位运算——左移右移运算详解
- 基础—位运算例
- 位运算—-异或
- 大数相加—位运算
- 位运算之——按位与(&)操作
- 位运算 优化运算速度——已发《电脑报》
- C———位运算总结
- C语言——位运算
- 提高算法性能——位运算
- 黑马程序员——位运算符
- c笔记——位运算
- 字符串组合——位运算
- 程序优化——位运算
- CSAPP——实验一 位运算
- Java——位运算符
- 网站(Web)压测工具Webbench源码分析
- 【Java.NIO】NIO的长连接及NIO的内存泄漏
- 去除自定义alertdialog(dialog)黑边
- 第十六周OJ之指数引出奇数因子
- 《C++程序设计原理与实践》部分习题答案 1
- 位运算——综述
- XAMPP环境下用phpStorm+XDebug进行断点调试的配置
- LinkedHashMap和HashMap的比较使用
- linux iptables配置
- 数据分析是模型驱动还是数据驱动?
- 第十六周项目1-数组的排序
- 在JTable中加载进度条及进行操作
- c++ 01
- 设置JTable某个单元格的背景颜色和前景颜色