<?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位运算 与 或 异或 取反的更多相关文章

  1. PHP中关于位运算符 与 或 异或 取反

    <?php /** * author:LMS * createTime:2015/07/22 * desctiption:位运算[ & | ^ ~ ] * 与&:如果a.b两个值 ...

  2. HDU 3911 线段树区间合并、异或取反操作

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=3911 线段树区间合并的题目,解释一下代码中声明数组的作用: m1是区间内连续1的最长长度,m0是区间内连续 ...

  3. <位运算> 任意二进制数 异或两个相同的二进制数 还是原本的值

    二进制,即0与1. 因为两个相同的二进制 异或必为0.(类似于不进位加法) 二进制里与0异或为其原本的0与1.. 可得任意二进制数 异或两个相同的二进制数 还是原本的值. 可用于交换和加密.

  4. 位运算------按位与、按位或、按位异或、取反、<<、>>、>>>

    程序中的所有数在计算机内存中都是以二进制的形式储存的,位运算就是直接对整数在内存中的二进制位进行操作. 知识点: 1.原码.反码.补码(以byte的1.-1举例) 示例                ...

  5. 为什么Java的hash表的长度一直是2的指数次幂?为什么这个(hash&(h-1)=hash%h)位运算公式等价于取余运算?

    1.什么是hash表? 答:简单回答散列表,在hash结构散列(分散)存放的一种数据集结构. 2.如何散列排布,如何均匀排布? 答:取余运算 3.Java中如何实现? 答:hash&(h-1) ...

  6. 【php】php位运算及其高级应用

    我们之前学过逻辑与(&&)      条件1 && 条件2 当两边条件同时成立时候返回1 逻辑或(||)         条件1 || 条件2    当两边条件只要有一 ...

  7. Java 基本数据类型 && 位运算

    1. Java基本数据类型 1.1 数据类型示意图 类型 字节数 范围 byte 1 -128~127 short 2 -32768~32767 int 4 -231~231-1 long 8 -26 ...

  8. 136.Single Number---异或、位运算

    题目链接 题目大意:给出一串数组,里面的数都是两个,只有一个数是一个,把这个只有一个的数找出来.时间复杂度最好是线性的,空间复杂度最好为O(1). 法一:利用map,空间换时间,代码如下(耗时26ms ...

  9. <转>C++位运算详解

    原文转自:http://www.crazycpp.com/?p=82 前言 以前收藏过一篇讲C++位操作的文章,这次博客搬家,以前的数据都没有保留,整理谷歌网站管理后台的时候,发现不时的还有网友有在查 ...

随机推荐

  1. 2017-9-15-Linux移植:WinSCP软件 & SSH Server开启

    在Linux电脑上面安装了TFTP server,但是各种不给力,决定寻找其他办法在Windows和Linux之间传输文件. WinSCP 是一个 Windows 环境下使用 SSH 的开源图形化 S ...

  2. redis -- python操作连接redis简单示例

    1.先安装 redis,pyredis sudo pip install redis sudo pip install python-redis 2.示例: importredis >>& ...

  3. 潭州课堂25班:Ph201805201 django 项目 第八课 注册功能分析,图片验证码视图设计 (课堂笔记)

    1,用户名     是否已注册 2,手机号 是否被注册 3,图形验证码 4,短信验证码, 5,验证成功后,向后台提交数据:用户名,密码,手机号,短信验证 要写这五个视图, 获取图形验证码,请求方式:g ...

  4. lxml的使用

    from urllib import request from lxml import etree # url = '''http://bangumi.tv/anime/browser?sort=ra ...

  5. vue父页面给子页面传递数据

    父页面: <template> <div>{{msg}} <Son title='向子文件传递数据' :data='data' :lifemsg ='lifemsg' : ...

  6. shell脚本使用技巧3--函数调用

    定义函数 function fname() { statements; } 或者 fname() { statements; } 传递参数给函数: fname arg1 arg2; ex: 函数参数定 ...

  7. GItHub Git 基础教程 常用命令 命令

    最近复习了一下Git的使用,简单总结了一些.以供以后查阅和大家参考. 一,安装 首先是Linux下: 打开shell ,输入 sudo apt-get install git-core 之后回车输入密 ...

  8. Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) D. High Load 构造

    D. High Load 题目连接: http://codeforces.com/contest/828/problem/D Description Arkady needs your help ag ...

  9. js动态时间(转)

    html代码 <span id="timeShow" show_cur_times()></span> js代码 $(function(){ //设置1秒调 ...

  10. JS自学笔记04

    JS自学笔记04 arguments[索引] 实参的值 1.对象 1)创建对象 ①调用系统的构造函数创建对象 var obj=new Object(); //添加属性.对象.名字=值; obj.nam ...