首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java 实现 按_Java的性质及其妙用

文章摘要: 1、按,可以简单理解成:不进位加法。即:1+1=0;0+0=0;1+0 =1; 2、任何数和自己结果为零。 3、按自反性。两次运算操作,可以将最后的结果还原。...4、任何数和0做值不变,和1结果为原操作数取反。 5、交换律。不使用中间变量,交换两个数。 一、按具有自反性。即:对同一个数据,进行两次按操作,等于数据本身。...【只允许使用按】 分析: 1、连续两次操作电灯开关,电灯将处于操作前状态。 2、关闭所有开关。任何数和自己结果为零。 实现: 1、定义“大房子”类。...大房子.次卧灯); hourse.操作电灯开关(大房子.走廊灯); //5、一键关闭所有灯 hourse.让所有的灯关闭(); System.out.println(hourse); 三、总结: 妙用按...本例演示了按的自反性,还有其他妙用,我们可以总结如下: 1、按,可以简单理解成:不进位加法。即:1+1=0;0+0=0;1+0 =1; 2、任何数和自己结果为零。

1.2K20

java中的运算符_java

^是运算符,的规则是转换成二进制比较,相同为0,不同为1....一个数a与另一个数b的结果等于a^b,结果( a^b)a,就会得到b; 上面的结果,我们代码来验证。代码( a=a^b; b=a^b; a=a^b;)可以转换成二进制计算。...a=a^b ; ———— 01=10^11 第一步得到结果C( a^b)赋值给a,所以a此时等于01 b=a^b; ———— 10=01^11 第二步 结果( a^b)b,即用C(01)b(...a=a^b; ————-11=01^10 第三步,a(01)b(10),等于11。转为十进制a等于3. 最后打印出来,a等于3, b等于2. 第二种:规则计算。 (规则:可以移动。...相同数等于0,任何数0等于本身) 第一步没变化,直接代入后面的代码进行计算。 第二步中b=a^b的 a^b转化为 a^b ^b ,其中让b^b等于0, a^0等于a。

1.9K10
您找到你想要的搜索结果了吗?
是的
没有找到

运算的秒--运算

先不要着急,咱们来一点一点的分析 运算 想要看懂上面的代码,首先你得知道什么叫运算。 先看定义 如果a、b两个值不相同,则结果为1。如果a、b两个值相同,结果为0。(这特么是啥?)...没明白没有关系,咱们接下来看例子 举个例子 比如a=5,b=3 首先 你得把a和b转换成二进制,那么a=101, b= 011 然后a和b进行运算,一的去对比,如果值相同,则对应位置运算的结果为...0,如果值不同,则对应位置运算的结果为1 运算示意图 所以a和b的运算的结果为 110 也就是6 运算也可以按照另外一个角度去理解,就是「无进位的加法」,其实也就是二进制的相加,但是加完的结果不进位而已...运算的特点 0和任何数N进行运算,结果为N 其实这个很好理解,任何数转换成二进制,每一上的数字要么是0,要么是1,而和0进行,以前是0的位置和0相同,则结果为0,以前是1的位置和0不同,则结果为...1,所以运算之后结果是没变的,如下图 任何数和0进行运算 任何数N和自己进行运算,结果为0 这个也很好理解,N^N每一肯定都会是一样的,根据运算的法则,结果肯定每一都为0 任何数和自己进行运算

41110

java的运算是,深入理解按运算符

即: 0^0 = 0, 1^0 = 1, 0^1 = 1, 1^1 = 0 按的3个特点: (1) 0^0=0,0^1=1 0任何数=任何数 (2) 1^0=1,1^1=0 1任何数-...任何数取反 (3) 任何数自己=把自己置0 按的几个常见用途: (1) 使某些特定的翻转 例如对数10100001的第2和第3翻转,则可以将该数与00000110进行按运算。...说明 ^ 运算符查看两个表达式的二进制表示法的值,并执行按。...运算就是二进制整数运算啦. 两个数按意思就是从个位开始,一的比....如果两个数相应的上一样,结果就是0,不一样就是1 所以111^101=010 那加密的过程就是逐个字符跟那个secret字符运算.

87720

与(&)、(|)、(^) – 运算详解

运算,在平时的使用频率不是很高,大部分人都很少用到,以至于对位运算的理解也是比较模糊。 下面就来详细说说,这些平时不常用的运算符究竟应该怎么,以及有什么需要注意的事项。...只有参与运算的两均为0时,结果才为0,否则为1 ab:$a | $b ^ 按 只有参与运算的两不同时,结果才为1,否则为0 ab:$a ^ $b ~ 按非(取反) 将用二进制表示的操作数中为...1的转为0,为0的为转为1 a非:~$a << 左移 将左边的操作数在内存中的二进制数据向左移动指定位数,右侧移空的0补齐 a左移4:$a<<4 >> 右移 将左边的操作数在内存中的二进制数据向右移动指定位数...,左侧移空的0补齐 a右移4:$a>>4 图示说明: 定义: A=81(d)=01010001(b) B=9(d)=00001001(b) 按与(&) 规则:0&0=0,0&1=0,1&0=0...,1&1=1 A&B运算结果:1(d)=00000001(b) 按(|) 规则:0|0=0,0|1=1,1|0=1,1|  1=1 A|B运算结果:89(d)=01011001(b) 按(

1.3K20

java_java中的

一、介绍 或是一种基于二进制的运算,符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制,同值取0,值取1。...,不过它最重要的性质还是自反性:A ^ B ^ B = A,即对给定的数A,同样的运算因子(B)作两次运算后仍得到A本身。...解法二:就没有这个问题,并且性能更好。将所有的数全部,得到的结果与1^2^3^…^1000的结果进行,得到的结果就是重复数。 但是这个算法虽然很简单,但证明起来并不是一件容易的事情。...这与运算的几个特性有关系。首先是运算满足交换律、结合律。 所以,1^2^…^n^…^n^…^1000,无论这两个n出现在什么位置,都可以转换成为1^2^…^1000^(n^n)的形式。...所以,将所有的数全部,得到的结果与1^2^3^…^1000的结果进行,得到的结果就是重复数。

3.2K21

运算之(XOR)

Table of Contents XOR是什么 XOR的运算规则 XOR的应用 References XOR是什么 是计算机的逻辑运算 XOR的运算规则 相同为0, 不同为1 1000 ^ 1001...的运算过程如下 1001 1000 =0001 XOR的应用 ---- 判断两个数是否相等 通过判断两个数结果是否为0来判断两个数是否相等 int a=10,b=20,c=10; a^b...x-1 是为了找出最右侧1的位置, // x & (x - 1) 是将从右侧的位置开始的位置为0 // ^ 是根据相同为0, 不同为1, 最右侧之前的位置为0 HashMap的hash算法 // java8...0 : (h = key.hashCode()) ^ (h >>> 16); } //h >>> 16 是为了将高位移向地位 //运算 是因为index = (n-1) &...hash; n是数组的长度, 为了防止hash散列冲突 //java7的是hash % n, java8无符号右移是因为运算快 References https://hackernoon.com

1.6K10

java运算符_python

Java-运算 运算法则 的运算方法是一个二进制运算: 例图: 总结 例题1 例题2:136....2、真假的结果是真,假真的结果也是真,真真的结果是假,假假的结果是假。就是说两个值相异结果为真。...3、n^0=n n^n=0,即任何数与0进行,为它本身,两个相同的数进行运算,会得到0。...上边这个也可以运算进行解题: 假设:1^2^3......^n.....^1000=T 而: 1^2^3.........所以,我们对于上边的解题办法就有了: 首先对1到1000,这1000个数进行运算,然后再把上边的1001个数进行运算,最后,再对这两个结果进行运算,就会得到唯一的那个n。

1.6K30

运算的秒--运算面试真题

前言 上次咱们聊了聊运算的妙用,其实简单来说,就是记住运算的三个特性 0和任何数N进行运算,结果为N 任何数N和自己进行运算,结果为0 运算满足交换律和结合律 当然如果您对这几个特性不是很了解...,或者不是很熟悉运算的话,建议先看看这篇文章 运算的妙用--运算 「闲话不用多说,咱们来看面试真题」 Q1:一个数组中有一种数出现了奇数次,其他数都出现了偶数次,怎么找到这一个数 「要求:时间复杂度...比如temp的第7为1,那就说明a和b的第7是不一样的,一个为0,一个为1。...那么咱们是不是可以通过第7是否为1,然后进行分组,「每个分组中出现的偶数次的数字的结果都是0的」,所以最后两个分组各自剩下的就是所需数字了, 咱们先来看一个方法 res := num & (^num...比如num是 1011011,那么他最左边的1 就是00000001 咱们一个代入的方式一步一步的计算试试 所以最后算法如下 func findTwoOddTimesNumber(arr []int

25620

逻辑与(&&)、逻辑(||)、按与(&)、按(|)、按(^)、按取反(~)

逻辑(||) 运算符两边的表达式的值都为false运算结果为false, 其余情况为true。 按与(&) 计算方法: 参加运算的两个数,换算为二进制(0、1)后,进行与运算。...只有当 相应上全部为1时取1, 存在0时为0。 011 & 110 011 110 --- 010 按(|) 计算方法: 参加运算的两个数,换算为二进制(0、1)后,进行运算。...只要当 相应上存在1时取1, 全部为0时为0。 011 | 110 011 110 --- 111 按(⊙) 计算方法: 参加运算的两个数,换算为二进制(0、1)后,进行运算。...只有当 相应上的数字相同时取1, 不相同为0。 011 ⊙ 110 011 110 --- 010 按(^) 计算方法: 参加运算的两个数,换算为二进制(0、1)后,进行运算。...2)<5; cout<<a<<" "<<b<<endl; //输出0 1 int c = 1ll<<3; cout<<c<<endl; //输出8 ll防止在往前移位的时候爆掉int 运算的性质

1.5K30

Java运算符详解实例——与(&)、非(~)、(|)、(^)

运算符主要针对二进制,它包括了:“与”、“非”、“”、“”。...2.运算符 运算符符号“|”表示,其运算规律如下: 两个位只要有一个为1,那么结果就是1,否则就为0,下面看一个简单的例子。...运算符是符号“^”表示的,其运算规律是: 两个操作数的中,相同则结果为0,不同则结果为1。...:"+(a^b)); } } 运行结果 a 与 b 的结果是:13 分析上面的程序段:a 的值是15,转换成二进制为1111,而b 的值是2,转换成二进制为0010,根据的运算规律,可以得出其结果为...运算值表 ABA&B110101011000 示例如下: [java] view plain copy int a=15;   int b=2;   System.out.println(

1.1K10

c语言中按运算,^按运算符「建议收藏」

^表示按运算符,顾名思义,相异,即不同则为1,反之为0 例如15和16进行运算,运算过程如下:15 0000 0000 0000 0000 0000 0000 0000 1111 16...0000 0000 0000 0000 0001 0000 ^ —————————————— 0000 0000 0000 0000 0000 0000 0001 1111 可以看到,经过按运算后...大家务必弄清楚运算过程,然后再上机验证,代码如下:#include int main() { int a; a=15^16; printf(“a=%d\n”,a); return 0; } 运算结果为:a=31 运算符的作用指定位数的翻转...如想对某个数字的低4进行翻转,则可以将这个数字与15(二进制为00001111)进行按运算,既可以将原数字的低四进行翻转,即高四不变,低四0变1,1变0 与0还是原值 大家可以自行实验...,一个数字与0进行,结果还是原值 交换两个数字 除了之前我们学习交换两个数字需要第三个变量做中介之外,如今可以通过运算进行,代码如下:#include int swap(int *a,int *

1.1K20

与、等运算方法

例:将X=10100000的低4置1 , X | 0000 1111 = 1010 1111即可得到。 运算符(^) 参加运算的两个数据,按二进制进行“”运算。...“运算”的特殊作用: (1)使特定位翻转找一个数,对应X要翻转的各位,该数的对应为1,其余为零,此数与X对应即可。...例:X=10101110,使X低4翻转,X ^ 0000 1111 = 1010 0001即可得到。 (2)与0相,保留原值 ,X ^ 0000 0000 = 1010 1110。...右移后左边空出的零来填充。移出右边的被丢弃。...本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同支持。

1.6K30

与& | ^ 的日常使用

与: 0&0=0; 0&1=0; 1&0=0; 1&1=1; 按: 0|0=0; 0|1=1; 1|0=1; 1|1=1; 按,在的基础上1 1也为0:...0^0=0; 0^1=1; 1^0=1; 1^1=0; 1.一个int型字段,存储十进制的数字,比如说是5 那么该数字转成二进制是101,我自己定义从左往右数, 第一1,代表某功能自动转发开启...第二0,代表自动删除关闭 第三1,代表自动保存开启 2.判断第三是否开启自动保存的代码 ($userStatus & pow(2,3-1))!...=0 3.pow是指数表达式函数,2的2次方,转成二进制是0100,按与0101 & 0100 是0100 十进制为4,因此不等于0为true 4.设置某一的值,如果要设置为1代码是 $userStatus...| pow(2,3-1) 原始值为 0001,要设置第三为1,0001 | 0100 为0101 5.把某一设置为0,代码是 $userStatus ^ pow(2,3-1) 0101 ^ 0100

1K20

c语言中按运算_c语言按怎么

与运算符:& 语法 expression & expression 备注 表达式可以是其他“与”表达式,(遵循下面所述的类型限制)相等表达式、关系表达式、加法表达式、乘法表达式、指向成员的指针表达式...按运算符:| 语法 expression | expression 备注 按“与”运算符 (|) 将第一个操作数的每个位与第二个操作数的对应进行比较。...如果其中一个是 1,则将对应的结果位设置为 1。否则,将对应的结果位设置为 0。 按“与”运算符的两个操作数必须为整型。 算术转换中涵盖的常用算术转换适用于操作数。...按运算符:^ 语法 expression ^ expression 备注 按”运算符 (^) 将第一操作数的每个位与第二操作数的相应进行比较。...如果一个是 0,另一个是 1,则相应的结果位将设置为 1。否则,将对应的结果位设置为 0。 按”运算符的两个操作数都必须为整型。 算术转换中涵盖的常用算术转换适用于操作数。

2.7K40
领券