最近在看一些加密函数,其中总涉及到一些位运算,尤其是^(按位异或),经过多方查找资料,对^的理解深入,分享资料留作纪念!

/*

手册资料:

位运算符

位运算符允许对整型数中指定的位进行置位。如果左右参数都是字符串,则位运算符将操作字符的 ASCII 值

$a ^ $b Xor (按位异或) 将把 $a 和 $b 中不同的位设为 1

*/

^(按位异或)的运算实例

#数字之间位运算

echo 12 ^ 9; // 输出为 '5'

#字符串之间位运算

echo "12" ^ "9"; // 输出退格字符(ascii 8)

// ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" ^ "hello"; // 输出 ascii 值 #0 #4 #0 #0 #0

// 'a' ^ 'e' = #4

echo 2 ^ "3"; // 输出 1

// 2 ^ ((int)"3") == 1

echo "2" ^ 3; // 输出 1

// ((int)"2") ^ 3 == 1

分析:在定义中我们可以知道,位运算符允许对“整型”中指定的位进行置位.但是也不仅仅只是支持“整数”,还支持字符串,不过如果左右参数都是字符串,则位运算符将操作“字符的 ASCII 值”,也就是如果是字符串,将转变成字符相应的ASCII 然后再进行操作.

#对与字符串操作,根据上面分析,原理总结如下:

$aa= 'a'^'b';

$bb= chr(ord('a')^ord('b'));

var_dump($aa);

var_dump($bb);

#以上两种写法结果是一样的

JAVA PHP 按位异或运算_对php位运算^(按位异或)的理解相关推荐

  1. c++位运算_最全位运算总结

    YOU CAN DRINK ALL YOU LIKE, BUT IN THE MORNING YOU GET HEADACHE WITH THE SAME PROBLEMS. 0x01 位 运 算 基 ...

  2. python 整数逆位运算_整数及其位运算

    整数及其位运算 整数具有无限精度.有四种整数表示法:十六进制整数(0x 或 0X 开头),十进制整数,八进制整数(0o 或 0O 开头)和二进制整数(0b 或 0B 开头). # 十六进制 0x10 ...

  3. python左移右移位运算_荐Python : 位运算 —— 与、或、异或、左移、右移

    Python : 位运算 -- 与.或.异或.左移.右移 位运算 位运算是把数字用 二进制 表示之后,对每一位上 0 或者 1 的运算.位运算共有 5 种运算:与.或.异或.左移.右移. 与.或.异或 ...

  4. Java位运算,常见的位运算

    前提 位运算符中 ,操作数只能为整型和字符型数据 运算符号 按位与(&):同1则1 → true&&true 操作数1 0 0 1 1 操作数2 0 1 0 1 按位与 0 0 ...

  5. 易语言 位异或c,易语言教程位运算命令(位取反、位于、位或、位异或)

    比特位 比特位就是转换成二进制之后每一位数,bit中文名称是位,音译"比特",是用以描述电脑数据量的最小单位. bit 来自binary digit (二进制数字) 二进制数系统中 ...

  6. Java 位运算系列之通过位运算操作状态

    文章目录 回顾 应用 总结 回顾 首先来回顾一下位运算,什么是位运算呢? 位运算就是直接对整数在内存中的二进制位进行操作. 在 Java 语言中,位运算有如下这些: 左移(<<). 右移( ...

  7. java 枚举 或运算_Objective-C 枚举 中位运算 的使用

    前言 Enum,也就是枚举,从C语言开始就有了,C++.Java.Objective-C.Swift这些语言,当然都有对应的枚举类型,功能可能有多有少,但是最核心的还是一个--规范的定义代码中的状态. ...

  8. java实现次方的运算_Java中对于位运算的优化以及运用与思考

    引言 随着JDK的发展以及JIT的不断优化,我们很多时候都可以写读起来易读但是看上去性能不高的代码了,编译器会帮我们优化代码.之前大学里面学单片机的时候,由于内存以及处理器性能都极其有限(可能很多时候 ...

  9. [剑指offer][JAVA][面试题56 - I][第260题][位运算][HashSet]

    [问题描述] [面试题56 - I] [数组中数字出现的次数] 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度 ...

最新文章

  1. 第二章指南(4.2)添加 Controller
  2. PTA天梯赛L1-006 连续因子 (20分)
  3. 思科模拟服务器怎么写文件,思科模拟服务器配置教程
  4. 系统美化 XP主题及其他
  5. mysql semisync 恢复_mysql半同步复制(semi_sync_replication)搭建及使用
  6. php mysql-proxy报错_MySQL-proxy代理导致PHP PDO::ATTR_EMULATE_PREPARES的预处理出错,MySQL报General error: 1243错误...
  7. jboss7.1.安装配置
  8. OJ1057: 素数判定(C语言经典列题,判断变量的应用)
  9. 3D建模学什么?细分的话,有这么多方向
  10. Intel 11代全新核显出现了!好强 好乱
  11. SQL SERVER自带调试工具SQL Server Profiler简单用法
  12. 数据库开发文档记录方法
  13. win7的centos虚拟机上搭建mysql5.6服务
  14. 赢在电子商务网站制作与营销:B2C版
  15. 元分析教程 | 手把手教你使用CMA 2.0
  16. 微型计算机系统的五大组成部分,计算机系统的组成计算机硬件的五大部分是什么...
  17. apiclod 上传图片_apicloud图片上传
  18. 七牛云php回调,回调通知_开发指南_对象存储 - 七牛开发者中心
  19. KMP的个人向总结(next数组 || DFA实现--JAVAC++魔改版)--by wxj
  20. Excel基础知识一:Excel功能区、单元格快速定位与选择、Ctrl与Shift的配合使用

热门文章

  1. 基于滑模速度控制器的PMSM矢量控制
  2. 【Geek】极客信条
  3. 生活随记-保护好眼睛
  4. 不知名菜鸟的day12
  5. JEECG 商业版本号和开源版本号有什么差别呢?
  6. CNVD-2021-30167 用友NC命令执行漏洞复现
  7. 为什么电脑浏览器显示时钟快了_win10打开chrome浏览器提示时钟错误怎么办
  8. mac安装telnet(个人记录)
  9. java时间计算同比环比周的问题
  10. linux中查看文件中的特殊字符方法: