首页
学习
活动
专区
工具
TVP
发布

C语言运算符_C语言左移和右移的区别

如果你想了解以下 运算符的话我想你来对了地方 & ^ | ~ > 首先明确运算符都是在二进制运算的 先讲比较简单的>(有些人可能认为这个最难以理解 包括我) 后来我陡然一时想到了十进制...左移“<<” 右移“>>” 十进制 10左移就是乘以10的3次方=10000 10右移三就是除以10的3次方=0.01 类比一下 1的二进制左移3就是乘以2的3次方也就是8 64的二进制右移...3就是除以2的3次方也就是8 看下图 按与“&” 同位相等并且都是1 则取1否则取0 同1为1 按或“|” 同位置有1则是1否则为0 有1为1 按异或“^”...同位 相同为0不同为1 按取反“~” 同位取反 注意得出来的是补码 比如c=~b 得出来的是c的反码 为了简洁我取二进制前4和后4 如下图 版权声明:本文内容由互联网用户自发贡献

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

「硬核JS」令你迷惑的运算

写在前面 今天,我们来学习一下 JS 操作符中的操作符 在 JS 这门语言的标准里,描述了一组可以用来操作数据值的操作符,其中包括 数学操作符、操作符、关系操作符、相等操作符、布尔操作符、条件操作符以及...,这种格式用 64 二进制存储数值,64 也就是 64 比特(bit),相当于 8 个字节,其中 0 到 51 存储数字(片段),52 到 62 存储指数,63 存储符号 而在 JS 运算中,并不会用...二进制整数就可以,因为 64 存储格式是不可见的,但是也正是因为后台这个默认转换操作,给 JS 这门语言产生了一个副作用,即特殊值 NaN 和 Infinity 在位运算中都会直接被当作 0 来处理...其实不止是 JS ,很多语言的运算都是如此 有符号&无符号 穿插一个小知识点, ECMAScript 整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数) 在 ECMAScript...,如下所示 ~~3.14 == 3 很多人知道这样可以取整,但是由于不知道具体是为什么而不敢用,所以我们来解释下为什么它为什么可以取整 上面我们说过,在 JS 运算中,并不会用 64 来计算,它会先在后台把值转换为

1.7K20

运算符与(&)、或(|)、异或(^)、非(~)、左移()、右移补零(>>>)如何选择?

(摘自百度百科) 运算符用来对二进制进行操作,Java中提供了如下所示的运算符(操作数只能为整型和字符型数据): & 按与 | 按或 ^ 按异或 ~ 按取反 除 ~ 以外,其余均为二元运算符...60 的补码为:00111100(省略了前面三组 00000000) 按取反后值为:11000011(省略了前面三组 11111111) 将其转换为十进制:-61 << 按左移运算符 <<:按左移运算符...60 的补码为:00111100(省略了前面三组 00000000) 按左移 2 后为:11110000(省略了前面三组 00000000) 转换为十进制为:240 左移运算符,num << 1,相当于...num 乘以 2(每左移就相当于乘以一个 2)。...因为运算运算效率比直接对数字进行加减乘除高很多,所以当出现以下情景且对运算效率要求较高时,可以考虑使用运算

2.2K20

运算

运算分为2个大类 逻辑运算 运算符为:&、|、^、~ 。分别读作:与、或、异或、按取反 位移位运算 运算符为:>。...分别读作:左移、右移 位于 &(一0则0) 将两个十进制数转为二进制,将此两个二进制转换为列竖式,运算时两个位数任意一个是0则此是0,有1个1则是1。然后将结果转为十进制。...,将2个二进制的数转换为列竖式, 左移 <<(数值变大) 将十进制数转为二进制,原二进制向左移动X,空位补0,然后将此结果转为10进制 @Test void 左移() {...被删除的不补) 1 转为十进制是 :1 12 >> 3 -------------》 1 利用运算表示状态 在Mysql我们可以利用字段来表示用户的某个属性或状态,但是如果用户有大量的状态...如果不想数据表存在大量的数据,我们可以使用运算,用一个数字的字段表示用户的状态。 思路:定义一个字段 数字类型 其数字表示了用户的多个状态!

1.3K20

运算

假设字长是8 移位运算符 <<表示左移运算符 一般格式x=0 上述表示将x的二进制数左移n。...&(按与) 双目运算符,对参加运算的两个操作数按二进制进行逻辑与运算。如果两个相应都是1,则该位运算的结果为1,否则为0。...例如把a的低四置1,高四不变,可作a|00001111运算 ^按异或运算 双目运算符,对参加运算的两个数按进行异或运算。当两个相应位相异时,该位的运算结果为1,否则为0。...而双目逻辑运算符中,&优先于^ ^优先于| 自反赋值运算运算符和赋值运算符可以组成自反赋值运算符,共有五种,分别是>>=、<<=、&=、|=、^=。...类似于+=是双目运算符,左边是变量右边是表达式,用于将某个变量和表达式进行指定位运算之后,把结果赋值给变量 例如a<<=b 相当于a = a<\<b 假设a的变量值是3 a<<2 即a 向左移(*

18020

运算

一、运算取反(NOT)~ 取反是一元运算符,对一个二进制数的每一执行逻辑反操作。使数字1成为0,0成为1。...例如 0101(十进制5) OR 0011(十进制3) = 0111(十进制7) 这一操作符需要与逻辑或运算符( )区别开来 按与(AND)& 按与处理两个长度相同的二进制数...例如: 0101 AND 0011 = 0001 按异或(XOR)^ 按异或运算,对等长二进制模式按或二进制数的每一执行逻辑异按或操作。...0001(十进制1) << 3(左移3) = 1000(十进制8) 1010(十进制10) >> 2(右移2) = 0010(十进制2) 算术移位...算术移位要保证符号的不改变(逻辑左移位补0, 逻辑右移位看符号),算术移位和逻辑移位最大的区别,是算术移位在右移时不改变原来的数的符号而逻辑移位在右移时有可能改变原来的数的符号 ----

73520

运算

&运算 &运算通常用于二进制取操作,例如一个数 & 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为 0 表示该数为偶数,最末位为 1 表示该数为奇数。 2....^运算 ^运算通常用于对二进制的特定一进行取反操作,因为异或可以这样定义:异或 0 都不变,异或 1 则取反。...«运算 a « b 就表示把 a 转为二进制后左移 b (在后面添 b 个 0)。...因此程序中乘以 2 的操作请尽量用左移来代替。 定义一些常量可能会用到«运算。你可以方便地用 1 «16 – 1 来表示 65535。...6. »运算 和«相似,a » b 表示二进制右移 b (去掉末 b ),相当于 a 除以 2 的 b 次方(取整)。我们也经常用» 1 来代替 div 2,比如二分查找、堆的插入操作等等。

1.5K20

JS中的操作符:“与,或,非,异或,左移,右移”

Javascript有算数操作符,赋值操作符,比较操作符,逻辑操作符,同时也有操作符。 引子 先想一想,如下,该输出什么答案?...与& 与运算法则:两同时为“1”,结果才为“1”,否则为0 5 & 1 = 1 或| 或运算法则:两其中一个为“1”,结果为“1”,否则为0 5| 1 = 5 非 非运算法则:单目运算符 二进制原码...先求反码:1000 0000 0000 0000 0000 0000 0000 0101 2.再求补码:1000 0000 0000 0000 0000 0000 0000 0110 最高位代表符号...1 表示负数,0 表示正数 ~5 = -6 异或^ 异或运算法则:两不同,结果为“1”,否则为0 5^1 = 4 左移 左移运算法则:将数值向左移动若干,用0补足 5<< 1 = 10 右移...右移运算法则:将数值向右移动若干 5>>1 = 2

2.9K41

取反怎么运算_按取反运算

取反:0变1,1变0 反码:正数的反码是其本身,对于负数其符号不变其它各位取反(0变1,1变0) 按取反(~): 这将是下面要讨论的。...————————————————————————————————- “~”运算符在c、c++、java、c#中都有,之前一直没有遇到这个运算符。...要弄懂这个运算符的计算方法,首先必须明白二进制数在内存中的存放形式,二进制数在内存中是以补码的形式存放的。...对其取反 1111 0110(符号一起进行取反,这不是最终结果,只是补码的取反仅此而已) 我们还需要把他转换成原码,由于最高位是1代表负数,下面进行负数补码到原码的逆运算 先减1得反码: 1111...所有正整数的按取反是其本身+1的负数 2. 所有负整数的按取反是其本身+1的绝对值 3.

1.9K20

java运算

文章目录 运算(&、|、^、~、>>、<<) 一 与运算 & 二 或运算 | 三 取反 ~ 四 异或 ^ 五 左移 << 六 右移 >> 运算(&、|、^、~、>>、<<) 从现代计算机中所有的数据二进制的形式存储在设备中...即 0、1 两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫运算,即将符号共同参与运算运算。...符号 描述 运算规则 & 与 两个位都为1时,结果才为1 | 或 两个位都为0时,结果才为0 ^ 异或 两个位相同为0,相异为1 ~ 取反 0变1,1变0 << 左移 各二进位全部左移若干,高位丢弃,...1)常用来对一个数据的某些设置为1 比如将数 X=1010 1110 的低4设置为1,只需要另找一个数Y,令Y的低4为1,其余为0,即Y=0000 1111,然后将X与Y进行按运算(X|Y=...异或的几条性质: 图片 五 左移 << 将一个运算对象的各二进制全部左移若干(左边的二进制丢弃,右边补0)。 若左移时舍弃的高位不包含1,则每左移,相当于该数乘以2。

71610
领券