java选数异或代码,java异或运算代码

java中异或是怎样算的

概述

在临川等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、网站建设、外贸营销网站建设 网站设计制作定制网站开发,公司网站建设,企业网站建设,成都品牌网站建设,成都全网营销推广,外贸网站建设,临川网站建设费用合理。

i = 14,异或算法转换二进制,同则取0异则取1;

解析

异或是一种基于二进制的位运算,用符号XOR或者^表示,其运算法则是对运算符两侧数的每一个进制位同值则取0,异值则取1.

简单理解就是不进位加法,如1+1=0,0+0=0,1+0=1.

For example:

3^5 = 6

转成二进制后就是 0011 ^ 0101 二号位和三号位都是异值取1 末尾两个1同值取零,所以3^5 = 0110 = 6

而 i = 50 ,j = 60;

所以:

i 的二进制 = 00110010

j 的二进制 = 00111100

同位相同取0,不同取1所以得出来的值为00001110

i = i ^ j;所以i = 00001110 = 14

拓展内容

异或运算符

性质

1、交换律 

2、结合律(即(a^b)^c == a^(b^c)) 

3、对于任何数x,都有x^x=0,x^0=x 

4、自反性 A XOR B XOR B = A xor 0 = A

异或运算最常见于多项式除法,不过它最重要的性质还是自反性:A XOR B XOR B = A,即对给定的数A,用同样的运算因子(B)作两次异或运算后仍得到A本身。这是一个神奇的性质,利用这个性质,可以获得许多有趣的应用。 例如,所有的程序教科书都会向初学者指出,要交换两个变量的值,必须要引入一个中间变量。但如果使用异或,就可以节约一个变量的存储空间: 设有A,B两个变量,存储的值分别为a,b,则以下三行表达式将互换他们的值 表达式 (值) : 

A=A XOR B (a XOR b) 

B=B XOR A (b XOR a XOR b = a) 

A=A XOR B (a XOR b XOR a = b)

#code:

google面试题的变形:一个数组存放若干整数,一个数出现奇数次,其余数均出现偶数次,找出这个出现奇数次的数?

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

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++) {

java异或运算符求详细过程

int 32位,补码存储

int a = 51;

int b = -16;

System.out.println("51  =" + Integer.toBinaryString(a));

System.out.println("-16 =" + Integer.toBinaryString(b));

int c = a^b;

System.out.println("异或    =" + Integer.toBinaryString(c));

System.out.println("即        =" + c);

51  =110011

-16 =11111111111111111111111111110000

异或    =11111111111111111111111111000011

原码为1000。。。111101

即        =-61


新闻标题:java选数异或代码,java异或运算代码
当前网址:http://myzitong.com/article/dscspjd.html