php位运算 与 或 异或 取反
<?php
/**
php中有4个位运算,分别是&与 |或 ^异或 ~取反
& 两位全为1,结果为1
| 有一位为1,结果为1
^ 一个为0,一个为1,结果为1
~ 取反0->1,1->0 1.二进制的最高位是符号位,0表示正数,1表示负数。
2.正数的原码,反码,补码都一样。
3.负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)。
4.负数的补码=它的反码+1。
5.0的反码,补码都是0.
6.php没有无符号数,换言之,php中的数都是有符号的。
7.在计算机运算的时候,都是以补码的方式来运算的。 **/ //异或
echo &; echo "<br/>";
echo | ; echo "<br/>";
echo -^; //推理过程: /** 13&7 13的补码 00000000 00000000 00000000 00001101
7的补码 00000000 00000000 00000000 00000111
13&7 00000000 00000000 00000000 00000101 = 5 5|4 5的补码 00000000 00000000 00000000 00000101
4的补码 00000000 00000000 00000000 00000100
5|4 00000000 00000000 00000000 000000101 =5 -3^3 -3的补码
-3的原码 10000000 00000000 00000000 00000011
-3的反码 11111111 11111111 11111111 11111100
-3的补码 11111111 11111111 11111111 11111101
php位运算 与 或 异或 取反
复制代码
<?php
/**
php中有4个位运算,分别是&与 |或 ^异或 ~取反
& 两位全为1,结果为1
| 有一位为1,结果为1
^ 一个为0,一个为1,结果为1
~ 取反0->1,1->0 1.二进制的最高位是符号位,0表示正数,1表示负数。
2.正数的原码,反码,补码都一样。
3.负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)。
4.负数的补码=它的反码+1。
5.0的反码,补码都是0.
6.php没有无符号数,换言之,php中的数都是有符号的。
7.在计算机运算的时候,都是以补码的方式来运算的。 **/ //异或
echo &; echo "<br/>";
echo | ; echo "<br/>";
echo -^; //推理过程: /** 13&7 13的补码 00000000 00000000 00000000 00001101
7的补码 00000000 00000000 00000000 00000111
13&7 00000000 00000000 00000000 00000101 = 5 5|4 5的补码 00000000 00000000 00000000 00000101
4的补码 00000000 00000000 00000000 00000100
5|4 00000000 00000000 00000000 000000101 =5 -3^3 -3的补码
-3的原码 10000000 00000000 00000000 00000011
-3的反码 11111111 11111111 11111111 11111100
-3的补码 11111111 11111111 11111111 11111101 3的补码 00000000 00000000 00000000 00000011 -3^3 11111111 11111111 11111111 11111110 《补码》
推反码《对补码-1》
11111111 11111111 11111111 11111101 《反码》
推原码《符号位不变 其他取反》
10000000 00000000 00000000 00000010 《原码》 =-2 注意:因为二进制没有进位和退位,可以看做是10-1,那就等于1了 **/
?>
3的补码 00000000 00000000 00000000 00000011 -3^3 11111111 11111111 11111111 11111110 《补码》
推反码《对补码-1》
11111111 11111111 11111111 11111101 《反码》
推原码《符号位不变 其他取反》
10000000 00000000 00000000 00000010 《原码》 =-2 注意:因为二进制没有进位和退位,可以看做是10-1,那就等于1了 **/
?>
php位运算 与 或 异或 取反的更多相关文章
- PHP中关于位运算符 与 或 异或 取反
<?php /** * author:LMS * createTime:2015/07/22 * desctiption:位运算[ & | ^ ~ ] * 与&:如果a.b两个值 ...
- HDU 3911 线段树区间合并、异或取反操作
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3911 线段树区间合并的题目,解释一下代码中声明数组的作用: m1是区间内连续1的最长长度,m0是区间内连续 ...
- <位运算> 任意二进制数 异或两个相同的二进制数 还是原本的值
二进制,即0与1. 因为两个相同的二进制 异或必为0.(类似于不进位加法) 二进制里与0异或为其原本的0与1.. 可得任意二进制数 异或两个相同的二进制数 还是原本的值. 可用于交换和加密.
- 位运算------按位与、按位或、按位异或、取反、<<、>>、>>>
程序中的所有数在计算机内存中都是以二进制的形式储存的,位运算就是直接对整数在内存中的二进制位进行操作. 知识点: 1.原码.反码.补码(以byte的1.-1举例) 示例 ...
- 为什么Java的hash表的长度一直是2的指数次幂?为什么这个(hash&(h-1)=hash%h)位运算公式等价于取余运算?
1.什么是hash表? 答:简单回答散列表,在hash结构散列(分散)存放的一种数据集结构. 2.如何散列排布,如何均匀排布? 答:取余运算 3.Java中如何实现? 答:hash&(h-1) ...
- 【php】php位运算及其高级应用
我们之前学过逻辑与(&&) 条件1 && 条件2 当两边条件同时成立时候返回1 逻辑或(||) 条件1 || 条件2 当两边条件只要有一 ...
- Java 基本数据类型 && 位运算
1. Java基本数据类型 1.1 数据类型示意图 类型 字节数 范围 byte 1 -128~127 short 2 -32768~32767 int 4 -231~231-1 long 8 -26 ...
- 136.Single Number---异或、位运算
题目链接 题目大意:给出一串数组,里面的数都是两个,只有一个数是一个,把这个只有一个的数找出来.时间复杂度最好是线性的,空间复杂度最好为O(1). 法一:利用map,空间换时间,代码如下(耗时26ms ...
- <转>C++位运算详解
原文转自:http://www.crazycpp.com/?p=82 前言 以前收藏过一篇讲C++位操作的文章,这次博客搬家,以前的数据都没有保留,整理谷歌网站管理后台的时候,发现不时的还有网友有在查 ...
随机推荐
- 涂鸦之作WanAndroid第三方APP
Wan Android App Introduction 我的涂鸦之作,正如名字一样 这个一个WanAndroid 的第三方Android客户端,采用MVP架构+Kotlin语言+一大堆轮子.现在的代 ...
- 想造轮子的时候,ctrl+f一下
Chardet,字符编码探测器,可以自动检测文本.网页.xml的编码. colorama,主要用来给文本添加各种颜色,并且非常简单易用. Prettytable,主要用于在终端或浏览器端构建格式化的输 ...
- POJ1700----Crossing River
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> us ...
- BZOJ.5290.[AHOI/HNOI2018]道路(树形DP)
BZOJ LOJ 洛谷 老年退役选手,都写不出普及提高DP= = 在儿子那统计贡献,不是在父亲那统计啊!!!(这样的话不写这个提高DP写记忆化都能过= =) 然后就令\(f[x][a][b]\)表示在 ...
- BZOJ.5461.[PKUWC2018]Minimax(DP 线段树合并)
BZOJ LOJ 令\(f[i][j]\)表示以\(i\)为根的子树,权值\(j\)作为根节点的概率. 设\(i\)的两棵子树分别为\(x,y\),记\(p_a\)表示\(f[x][a]\),\(p_ ...
- c++检查内存泄漏
使用_CrtDumpMemoryLeaks()函数检查内存泄漏 #include <cstdio> #include <cstdlib> #include <crtdbg ...
- BZOJ4077 : [Wf2014]Messenger
二分答案,让$A$推迟出发$mid$的时间. 对于每个相邻的时间区间,两个点都是做匀速直线运动. 以$A$为参照物,那么$A$不动,$B$作匀速直线运动. 若线段$B$到$A$的距离不超过$mid$, ...
- Ural2110 : Remove or Maximize
设最大的数为$w$,若$n>k+\log w$,那么显然所有$1$都可以保留,否则现在$n\leq k+\log w$. 如果$w\leq 100000$,那么可以DP,设$f[i][j]$表示 ...
- Java WebSocket 线程安全的保证
Java WebSocket线程安全基于3点: 1 在新的客户端连接时,WebSocket容器会创建一个新的端点实例,对应的会话实例表示从唯一的客户端到该端点实例的唯一连接. 2 每个WebSocke ...
- layUI模块化框架
layUI的API 文档 https://www.layui.com/doc/element/progress.html API文档中有许多demo 以及相关属性的详细介绍