二进制,位运算,移位运算
2015-06-08 08:51
337 查看
1.二进制
二进制有着原码,反码,补码之分,在计算机中都是用补码进行运算,这样符合计算机的特性。
a, 首先说说正数,正数的原码,反码,补码都一样 ,只要写出原码,一切都OK,运算当然是用反码啦,在这也就是原码。
b, 其次是负数,负数相对复杂一些,反码是符号位不变,其他位全取反,补码是在反码基础上加1,找负数补码还有一种快捷方法,符号位不变,从右往左看,第一个1之前的数全部取反。
2.四个位运算(补码运算,有负数一定要变成补码,结果为负数也要变成原码)
a, 按位与 & 只有当参与运算的两个数都为1,结果才为1,例如 1&1=1,1&0=0,0&0=0。
b, 按位或 |
其中一个为1,结果为1.
c, 按位异或
^ 一个数为0,另一个数为1,结果为1.
d, 按位取反
~ 包括符号位在内的全部数d都取反。
3.三个移位运算(补码运算,有负数一定要变成补码,结果为负数也要变成原码)
a, 算术右移,>>,低位溢出,符号位不变,并用符号位数补溢出的高位。
b, 算术左移,<<,符号位不变,低位补零。
c, 逻辑右移,>>>,低位溢出,高位补零。
二进制有着原码,反码,补码之分,在计算机中都是用补码进行运算,这样符合计算机的特性。
a, 首先说说正数,正数的原码,反码,补码都一样 ,只要写出原码,一切都OK,运算当然是用反码啦,在这也就是原码。
b, 其次是负数,负数相对复杂一些,反码是符号位不变,其他位全取反,补码是在反码基础上加1,找负数补码还有一种快捷方法,符号位不变,从右往左看,第一个1之前的数全部取反。
2.四个位运算(补码运算,有负数一定要变成补码,结果为负数也要变成原码)
a, 按位与 & 只有当参与运算的两个数都为1,结果才为1,例如 1&1=1,1&0=0,0&0=0。
b, 按位或 |
其中一个为1,结果为1.
c, 按位异或
^ 一个数为0,另一个数为1,结果为1.
d, 按位取反
~ 包括符号位在内的全部数d都取反。
3.三个移位运算(补码运算,有负数一定要变成补码,结果为负数也要变成原码)
a, 算术右移,>>,低位溢出,符号位不变,并用符号位数补溢出的高位。
b, 算术左移,<<,符号位不变,低位补零。
c, 逻辑右移,>>>,低位溢出,高位补零。
相关文章推荐
- Climbing Stairs
- java动态加载指定的类或者jar包反射调用其方法
- 如何手动获取myEclipse注册码:MyEclipse Trial Expired
- js特效示例
- Yii2的RESTful API开发
- javascript 实现tab菜单切换
- 【Mysql】在mysq中抓取正在l执行的sql语句方法
- C# 并行编程 之 PLINQ 执行MapReduce算法
- Yii2 API认证和授权
- 鸟哥的linux私房菜学习笔记 ---第6章-3
- ASP.NET中实现Form表单字段值自动填充到操作模型中
- C++ 堆 和 栈 浅析
- Yii2 XSS 防范策略
- google浏览器图标显示不正常怎么办
- Secure Remote Password (SRP)
- matlab字符串操作总结
- 在java中,如何跳出当前的多重循环?
- C实战开发(PE结构查询)
- 大神曝光Win10 Build 10134简体中文版
- VS2013 试用版到期 解决办法