异或算法的java代码 异或java代码怎么写

java中异或是怎样算的

异或运算(^)都以二进制数据为基础进行的运算。也就是说当代码中使用到异或运算时,都会先将两个条件进行转换,转换成二进制数据后,再进行运算。异域中同位如果值相同(都是0或者都是1)则为0,不同(一个是0,一个是1)为1。

十载品牌的成都网站建设公司,上千多家企业网站设计经验.价格合理,可准确把握网页设计诉求.提供定制网站建设、商城网站建设重庆小程序开发、响应式网站建设等服务,我们设计的作品屡获殊荣,是您值得信赖的专业网站制作公司。

例如

int a=4;

int b=6;

int c = a^b;//c的值是a和b的异或。值为2.过程

1、a的值二进制是

0000 0100 //这里去低8位,因为高位都一致。 2、b的值二进制是

0000 0110 3、异或后

0000 0010 //结果是2

JAVA中如何对一个字符串里的字符做异或运算,例如,字符串A=cghjhgfgsdyugh;第一步

Java代码:

public class test{

public static void main(String[] args) {

String source = "cghjhgfgsdyugh";

int ch = source.charAt(0);

for(int i=1; isource.length(); i++) {

ch ^= source.charAt(i);

}

System.out.printf("%d : %c\n", ch, ch);

}

}

运行测试:

28 :

JAVA 文本文件用异或算法进行加密解密的程序代码!

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

public class XorExample {

public static final byte XOR_CONST = 0X12;

public static void main(String[] args) throws Exception {

File src = new File("level1.txt");

File dest = new File("level2.txt");

File dest2 = new File("level3.txt");

xorEn(src, dest);

xorEn(dest, dest2);

}

/**

* 异或的一个特点: a^b = c c^b = a

* 所以简单点,这里的加解密都用一个函数就行了

* @param src

* @param dest

* @throws Exception

*/

public static void xorEn(File src, File dest) throws Exception {

// 文件不存在或为文件夹就不判断了

FileInputStream fis = new FileInputStream(src);

FileOutputStream fos = new FileOutputStream(dest);

byte[] bs = new byte[1024];

int len = 0;

while ((len = fis.read(bs)) != -1) {

for (int i = 0; i len; i++) {

bs[i] ^= XOR_CONST;

}

fos.write(bs, 0, len);

}

fos.close();

fis.close();

}

}

java异或运算

java和c的执行是不一致的

相同之处:i ^= (j ^= (i ^= j)); java和C都是这个执行顺序;

不同之处:

java:执行完第一个(i ^= j)的时候,最左边的i的值还是1而不会是(i ^= j)的值

C:执行完第一个(i ^= j)的时候,最左边(第一个)i的值是(i ^= j)

你的程序改成这样就可以了:

j ^= i ^= j;

i ^= j;

i =i^j;

j=i^j;

i=i^j;

java中的(或运算,异或运算,与运算)解释下

java中或运算、异或运算、与运算的使用实例和解释如下:

public class Test {    public static void main(String[] args) {        

// 1、左移(  )        

// 0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0:

//        // 0000 0000 0000 0000 0000 0000 0001 0100 换算成10进制为20        System.out.println(5  2);// 运行结果是20         

// 2、右移(  ) 高位补符号位        

// 0000 0000 0000 0000 0000 0000 0000 0101 然后右移2位,高位补0:       

// 0000 0000 0000 0000 0000 0000 0000 0001       

System.out.println(5  2);// 运行结果是1         

// 3、无符号右移(  ) 高位补0        

// 例如 -5换算成二进制后为:0101 取反加1为1011       

// 1111 1111 1111 1111 1111 1111 1111 1011        /

/ 我们分别对5进行右移3位、 -5进行右移3位和无符号右移3位:       

System.out.println(5  3);// 结果是0       

System.out.println(-5  3);// 结果是-1        

System.out.println(-5  3);// 结果是536870911         

// 4、位与(  )        

// 位与:第一个操作数的的第n位于第二个操作数的第n位如果都是1,那么结果的第n为也为1,否则为0        

System.out.println(5  3);// 结果为1        

System.out.println(4  1);// 结果为0         

// 5、位或( | )        

// 第一个操作数的的第n位于第二个操作数的第n位 只要有一个是1,那么结果的第n为也为1,否则为0        

System.out.println(5 | 3);// 结果为7         

// 6、位异或( ^ )        

// 第一个操作数的的第n位于第二个操作数的第n位 相反,那么结果的第n为也为1,否则为0         

System.out.println(5 ^ 3);//结果为6         

// 7、位非( ~ )        // 操作数的第n位为1,那么结果的第n位为0,反之。        System.out.println(~5);// 结果为-6     } }

java怎样用异或进行

异或运算(^)都以二进制数据为基础进行的运算。也就是说当代码中使用到异或运算时,都会先将两个条件进行转换,转换成二进制数据后,再进行运算。异域中同位如果值相同(都是0或者都是1)则为0,不同(一个是0,一个是1)为1。

例如

int a=4;

int b=6;

int c = a^b;//c的值是a和b的异或。值为2.

过程

1、a的值二进制是

0000 0100 //这里去低8位,因为高位都一致。

2、b的值二进制是

0000 0110

3、异或后

0000 0010 //结果是2


标题名称:异或算法的java代码 异或java代码怎么写
标题路径:http://cdiso.cn/article/hhdogs.html

其他资讯