二进制运算

1. 按位与&
两位全为1,结果才为1
用途:a. 清零。如果想将一个一个单元清零,即使其全部二进制为零,只要与一个各位都为0的数相与即可。
b. 取一个数的指定位,与一个数相与,指定位置的数为1,其余为0
2. 按位或|
只要有一个为1,结果就为1
用途:a. 将一个数的某些位置为1
3. 异或运算^
相应位相同为0,不同为1
用途:a. 使特定位反转 反转对应位为1,其余为0
b. 与0相异或,保留原值
c. 两个变量交换值
1. 借助第三个变量来实现
2. 利用加减法实现两个变量的交换
A=A+B;B=A-B;A=A-B;
3. 用位异或运算来实现,也是效率最高
原理:利用一个数异或本身等于0和异或运算符合交换率。
A=A^B;B=A^B;A=A^B;
4. 取反运算~
0变1,1变0;
5. 左移运算<<
讲一个二进制数左移(左边二进制位丢弃,右边补0),若左移时舍弃的高位不包括1,则没左移一位就相当于乘以2
6. 右移运算>>
将一个数的各二进制位全部右移,正数左补0,负数左补1,右边丢弃。操作数每右移一位,相当于该数除以2
7. 无符号右移运算>>>
将一个数的各二进制位全部右移,,右移后空出来的位用0填充。

时间: 2024-10-13 10:43:20

二进制运算的相关文章

javascript 中的二进制运算的一些技巧,晒出来和你们分享一下,希望可以帮助你们

1.原码.反码.补码,正数减法转补码加法 js 在进行二进制运算时,使用 32 位二进制整数,由于 js 的整数都是有符号数,最高位0表示正数,1表示负数,因此,js 二进制运算中使用的整数表达范围是 复制代码代码如下: -Math.pow(2,31) ~ Math.pow(2,31)-1 // -2147483648 ~ 2147483647 原码:最高位 0 表示正,1表示负,其余 31 位是该数的绝对值(真值的绝对值)的二进制形式 反码:正数反码与原码相同,负数反码是原码符号位不变,其余3

关于简单的运算、二进制运算、逻辑运算符

简单的运算 >>> 1+1 2 >>> 2-1 1 >>> 2*3 6 >>> 2/1 2.0 >>> 5%4     <====返回除法的余数 1 >>> 2**2    <====幂次方 4 >>> 5//2    <====关于取商,只取整数部分 2 >>> 5==5 True >>> 5!=4    <====关于

关于简单的运算、二进制运算、逻辑运算符、成员运算符、身份运算符

简单的运算 >>> 1+1 2 >>> 2-1 1 >>> 2*3 6 >>> 2/1 2.0 >>> 5%4     <====返回除法的余数 1 >>> 2**2    <====幂次方 4 >>> 5//2    <====关于取商,只取整数部分 2 >>> 5==5 True >>> 5!=4    <====关于

JavaScript 二进制运算

1.原码.反码.补码,正数减法转补码加法 js 在进行二进制运算时,使用 32 位二进制整数,由于 js 的整数都是有符号数,最高位0表示正数,1表示负数,因此,js 二进制运算中使用的整数表达范围是 复制代码代码如下: -Math.pow(2,31) ~ Math.pow(2,31)-1 // -2147483648 ~ 2147483647 原码:最高位 0 表示正,1表示负,其余 31 位是该数的绝对值(真值的绝对值)的二进制形式 反码:正数反码与原码相同,负数反码是原码符号位不变,其余3

二进制运算新发现

以后把关于二进制运算编程相关的记录到这里好了. 前段时间小米笔试第一道题:二进制数中一的个数. 解法一: 1 int getnumof1(int n) 2 { 3 int count = 0; 4 whlie (n) { 5 if (n & 1) { 6 count++; 7 } 8 n = n >> 1; 9 return count; 10 } 明显的问题是:如果输入是一个负数, 则会因为符号位‘1’填充左边高位,导致进入死循环,虽然可以进入函数内判断负数并对其进行取绝对值,但显然

第二章、二进制运算、字符编码、数据类型总结

第二章 二进制运算.字符编码.数据类型 二进制与十进制转换 ASCII表 文字转2进制 计算机容量单位 字符编码 列表 创建: a = list() a = [] 查询: L2[2] 通过索引取值 L2[-1] 通过索引从列表右边开始取值 L2.index('a') 返回指定元素的索引值,从左右查找,找到第一个匹配值,则返回. L2.count('a') 统计指定元素的个数 切片: L2[0:3] 返回从索引0至3的元素,不包括3,顾头不顾尾 L2[0:-1] 返回从索引0至最后一个值,不包括最

JavaSE基础(九)--Java二进制运算

Java二进制运算 Java二进制表示法 首先了解下二进制,二进制是相对十进制而言的,当然还有八进制,十六进制等等,我们常用的都是十进制,计算机用的都是二进制,而符号表示常用十六进制. 二进制就是只有0.1两个值表示的数,规则是逢二进一.数据存储在内存中都是存储的二进制,二进制又可分为原码.反码.补码.最终存储在内存中的是“补码”. 在了解原码.反码.补码之前先得了解一下机器数和真值. 机器数 一个数在计算机中的二进制表示形式,叫做这个数的机器数.机器数是带符号的,在计算机用机器数的最高位存放符

二进制运算基础

# 一.二进制位运算 1. 按位与(&) ??位运算实质是将参与运算的数字转换为二进制,而后逐位对应进行运算. ??按位与运算为:两位全为1,结果为1,即1&1=1,1&0=0,0&1=0,0&0=0. ??例如51 & 5 -> 00110011 & 00000101 = 00000001 -> 51 & 5 = 1 ??特殊用法: ??(1)与0相与可清零. ??(2)与1相与可保留原值,可从一个数中取某些位.例如需要取101

初识python(条件判断、循环控制、循环次数限制、常用数据类型、字符串格式化、列表常用操作、二进制运算、嵌套循环)

第一天学习 1.pycharm使用遇到的问题: 如果想运行程序A,一定要右键去执行程序A,而不能直接左下角run,那样的话可能会出现运行之前其他程序 pycharm小技巧: 1.多行全选,shift+tab整体往前缩进一个tab 2.多行全选,tab整体向后缩进一个tab 3.多行全选,ctrl+/注释所选代码,再次按ctrl+/注释取消所选代码 4.pycharm中切换3.5和2.7:file菜单-settings-project pycharmPreject--project interpr

二进制运算理解及在代码中的运用

一讲计算机的发展,必定会提到二进制.虽然二进制对计算机的重要性经常被强调,但在利用高级语言(如:C#)的开发中,用得还是相对较少的.可这相对较少的运用,并不能成为我们不去理解他的借口. 一.二进制的运算. (一)算术运算 从我们日常中熟悉的十进制来理解.从十进制的“0,1,2,3,4,5,6,7,8,9”减少到“0,1”.每位的容量从10到2的变化,仅此而已,就是这么简单. 1.加法:0+0=0,0+1=1 ,1+0=1, 1+1=10(向高位进位) 2.减法:0-0=0,0-1=1(向高位借位