APTX博客

  • ACGN
  • Coding
  • DevOps
  • Daily
  • Share
  • Bangumi
APTX Blog
A Moe Blog Set Up By ミズキ
  1. 首页
  2. OI
  3. 正文

#笔记#二进制与位运算

2018年10月17日 2001点热度 2人点赞 0条评论

二进制

计算机是使用二进制进行存储和计算的。二进制运算遵循的规则是“进二”。

原码,指一个二进制数左边加上符号位后所得到的码,且当二进制数大于0时,符号位为0;二进制数小于0时,符号位为1;二进制数等于0时,符号位可以为0或1。

反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码:正数的补码与原码相同,负数的补码是其对应正数二进制所有位取反后加1。

在计算机中通常使用补码进行储存。

位运算

左移右移运算:

在二进制运算中,这东西叫做“左移”“右移”运算,顾名思义,就是将一个二进制数向左或向右移动\(k\)位,就是给一个数乘 \(2^k\)或者除 \(2^k\) (末尾1不计)。

取反运算:

“~”运算又称取反运算,就是对一个二进制数按位取反。

\[~x=-x-1\]

与运算:

“&”运算又称与运算也是一种逻辑运算符,对于二进制运算来说,“&”运算的意义是对于两个二进制数的每一位,如果这一位都是\(1\),那么这一位为

\(1\)

,否则这一位为 \(0\)。

我们可以用 & 运算判断一个数是奇数还是偶数,当 \(x\) 为奇数时, \(x\)  二进制下的第 \(0\) 位一定是 \(1\) ,否则为\(0\)  。我们让\(x\& 1\),就可以知道\(x\) 的奇偶性了。

或运算:

或运算又称“|” 运算也是一种逻辑运算符,对于二进制运算来说,“|” 运算的意义是对于两个二进制数的每一位,如果这两个数此位有一个 \(1\) 那么此位就是 \(1\) ,否则为 \(0\) 。

通过对这两个运算的观察,我们可以发现一个规律:

\[\begin{array}{l}
x\& y < = x\\
x|y > = x
\end{array}\]

异或运算:

异或运算即“^”运算定义是对于两个二进制数的每一位,如果相同则为\(0\) ,否则为 \(1\) 。

首先显而易见的是一个数异或他自己肯定是得\(0\) 的

其次对于一个形如\(2*n\)的数\(x\),x ^ 1 = x + 1而对于一个形如\(2*n+1\)的数\(x\),x ^ 1 = x - 1

然后异或运算满足以下交换律:

x^y=z那么于y^z=x,x^z=y

运算符的优先级

加减运算>移位运算>比较大小运算>与运算 >异或运算>或运算

待会补充

转自:https://www.luogu.org/blog/chengni5673/er-jin-zhi-yu-wei-yun-suan

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: C++ 二进制 位运算 进制
最后更新:2018年12月15日

神楽坂 みずき

萌萌萌,好萌!

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

神楽坂 みずき

萌萌萌,好萌!

搜索
最新 热点 随机
最新 热点 随机
上岸 Star Divine 现代前端工程师发展方向不完全指北 站点域名变更通知 私たちの居る理由 《サクラノ詩》VI 章 直哉与蓝对话
#NOIP提高组#模板整理 从《AMRITA》到《HELLO WORLD》── 野﨑まど世界观下的个体与世界的真实感 家用无线组网最终方案 C++ STL中队列(queue)及优先队列(priority_queue)笔记 为Wordpress添加连接管理器(LinkManager)功能 React 配合后端热更新
标签聚合
C++ 日常 HTML 动漫 OI ST 洛谷 C/C++
分类
  • ACGN
  • Coding
  • Daily
  • DevOps
  • OI
  • Share

COPYRIGHT © 2017-2022 APTX博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang