Login
网站首页 > 文章中心 > 其它

php按位异或运算_逻辑异或运算怎么算

作者:小编 更新时间:2023-09-16 13:25:50 浏览量:78人看过

其他语言如何解密PHP多字符串的异或加密

利用"^"异或运算对字符串进行加密

思路:1.先创建字符串输入的Scanner;

按位做"异或"运算是:位值相同得1,不同得0

例如:

加密过程:

原解释的二进制为 1 1 0 0 ----原文

设定的key的二进制为 0 1 1 0 ----密匙

两者做"异或"结果为 0 1 0 1 ----密文

解密过程:

0 1 0 1----密文

0 1 1 0----密匙

两者"异或"就得到了原文 1 1 0 0 ----原文

详细代码:

package com.lixiyu;

import java.util.Scanner;

public class Example {

public static void main(String[] args){

Scanner sca=new Scanner(System.in);

System.out.println("请输入一个英文字符串或解密字符串");

String line=sca.nextLine();//获取用户输入信息

char[] array=line.toCharArray();//获取字符数组

for (int i=0;iarray.length;i◆◆){//历遍字符数组

}

System.out.println("加密解密结果如下:");

System.out.println(new String(array));//输出密钥

异或运算:

①. ^ 1 = 0

①. ^ 0 = 1

0 ^ 1 = 1

0 ^ 0 = 0

XOR运算后 : 00000000 00000000 00000000 01000110

简单加密算法代码如下 :

public class Test {

public static void main(String[] args) {

String str = "Hello World!";

//加密过程

for(int i=0;istr.length();i◆◆)

{

char c = (char)(str.charAt(i) ^ KEY);

//解密过程

System.out.println("原始 的字符串为:" ◆ str);

输出:

原始 的字符串为:Hello World!

加密后 的字符串为:Obkkh'Phukc

解密后 的字符串为:Hello World!

求助!什么是按位或,什么是按位异或,什么是按位与?

①.、按位或:如果两个相应的二进制位有一个为1,则该结果为1,否则为0.

扩展资料:

注意事项:

①.、如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算.

PHP语言PHP语言里的位运算符&、|、^ 、~、〈〈 、〉〉这些符号我一个也不懂,希望高手给个全面的解释!拜

"" 按位与运算

按位与运算符""是双目运算符.其功能是参与运算的两数各对应的二进位相与.只有对应的两个二进位均为1时,结果位才为1,否则为0.参与运算的数以补码方式出现.

00000001 (1的二进制补码)

php

echo sprintf("%b", $a$b);

"|" 按位或运算

按位或运算符"|"是双目运算符.其功能是参与运算的两数各对应的二进位相或.只要对应的二个二进位有一个为1时,结果位就为1.参与运算的两个数均以补码出现.

00001001

|00000101

echo sprintf("%b", $a|$b)."\n"; //二进制

echo sprintf("%d", $a|$b)."\n"; //十进制

"^" 按位异或运算

^00000101

echo sprintf("%b", $a^$b)."\n"; //二进制

echo sprintf("%d", $a^$b)."\n"; //十进制

"~" 求反运算

求反运算符~为单目运算符,具有右结合性.其功能是对参与运算的数的各二进位按位求反.

~(0000000000001001)结果为:1111111111110110

echo sprintf("%b", ~$a)."\n"; //二进制

"〈〈" 左移运算

左移运算符""是双目运算符.其功能把" "左边的运算数的各二进位全部左移若干位,由""右边的数指定移动的位数,高位丢弃,低位补0.

echo sprintf("%d", $temp)."\n"; //十进制

"" 右移运算

右移运算符""是双目运算符.其功能是把" "左边的运算数的各二进位全部右移若干位,""右边的数指定移动的位数.

应该说明的是,对于有符号数,在右移时,符号位将随同移动.当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定

按位异或运算符怎么用

①.:"按位与"运算符()用法是如果两个相应的二进制位都为1,则该位的结果值为1否则为0.00=0,10=0,11=1

0,10=1,11=1

PHP中echo 12 ^ 9;得出的结果是什么?谁能给我个完美的解释.PHP新手这边有礼了~~0.0

对,这是"^" 按位异或运算

按位异或运算符"^"是双目运算符.其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1,反之结果为0;

①.100和1001

--------------------------

运算过程 :从左到右

第一位都是1 那么得 0

第二位相异 得 1

第三位都是0 得 0

第四位相异 得 1

那么结果就是0101

php 简单的异或运算

异或一下可求出.

function?showXor($a,?$b){

$c=$a^$b;

printf('%x?xor?%x?=?%x?br/',$a,$c,$b);

以上就是土嘎嘎小编为大家整理的php按位异或运算相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章