首页 > 其他分享 >应该背下的位运算

应该背下的位运算

时间:2024-05-26 14:58:01浏览次数:21  
标签:运算 32 背下 大写 --- 等价 小写 应该

目录

位运算知识

1.位运算的由来

2.位运算符号​编辑

3.常用位运算 

判断奇偶

x / 2  ---等价--->  x >> 1

x &= (x - 1)    ---等价--->   把x最低位的二进制1给去掉

x & -x   ---等价--->   得到最低位的1

x & ~x  ---等价--->   0

4.指定位置的位运算

5.异或结合律

6.大小字母位运算

大写变小写、小写变大写:

大写变小写、小写变小写:

大写变大写、小写变大写:

例题


位运算知识

1.位运算的由来


在计算机里面,任何数据最终都是用数字来表示的,并且计算机运算单元只认识高低电位,转化成我们认识的逻辑,也就是 0 1 。这就是导致计算机里面任何数据最终都是用二进制来保存的数字。

2.位运算符号

3.常用位运算 

判断奇偶

        (x & 1) == 1 ---等价---> (x % 2 == 1)

        (x & 1) == 0 ---等价---> (x % 2 == 0)

x / 2  ---等价--->  x >> 1

为什么x右移一位等于x除以2呢?

位运算是通过二进制位转化到十进制,计算方式即二项展开式的求和结果,右移一位相当于所有位下降一级,即对二项展开式整体除以2.

ps:如果x为负数,右移一位后,最高位补1,即算术右移

x &= (x - 1)    ---等价--->   把x最低位的二进制1给去掉

x & -x   ---等价--->   得到最低位的1

x & ~x  ---等价--->   0

4.指定位置的位运算

  1. 将X最右边的n位清零:x & (~0 << n)
  2. 获取x的第n位值:(x >> n) & 1
  3. 获取x的第n位的幂值:x & (1 << n)
  4. 仅将第n位置为1:x | (1 << n)
  5. 仅将第n位置为0:x & (~(1 << n))
  6. 将x最高位至第n位(含)清零:x & ((1 << n) - 1)
  7. 将第n位至第0位(含)清零:x & (~((1 << (n + 1)) - 1))

5.异或结合律

x ^ 0 = x, x ^ x = 0 x ^ (~0) = ~x, x ^ (~x) = ~0

a ^ b = c, a ^ c = b, b ^ c = a (有没有点乘法结合律的意思)

字母表示:(a ^ b) ^ c = a ^ (b ^ c)

图形表示:(☆ ^ ◇) ^ △ = ☆ ^ (◇ ^ △)

6.大小字母位运算

大写变小写、小写变大写:

字符 ^= 32 (大写 ^= 32 相当于 +32,小写 ^= 32 相当于 -32)

大写变小写、小写变小写:

字符 |= 32 (大写 |= 32 就相当于+32,小写 |= 32 不变)

大写变大写、小写变大写:

字符 &= -33 (大写 ^= -33 不变,小写 ^= -33 相当于 -32)

把字母当成 8 个bit 位来看,我把大小字母对应的后 4 位圈出来了。

大家有没有发现 A-a B-b ... Z-z 26个字母之间的大小写的后 4 位是完全一样的!!!
(重要知识点1:对应大小字母的 后4位二进制是一样的,后4位二进制是一样的,后4位二进制是一样的)

再来看一下头 4位。对应大小字母之间就第 3位 的 bit 值不一样!!!
(重要知识点2:对应大小字母的前4位中,只有第3位bit值不一样,只有第3位bit值不一样,只有第3位bit值不一样)
把不一样的bit位单独取出来,其它位补 0,也就是 0010 0000,对应的十进制数就是 32 !!!

例题

190. 颠倒二进制位

191. 位1的个数

231. 2 的幂

338. 比特位计数

709. 转换成小写字母

大家试着使用上面的技巧尝试一下吧!!!

本文来源LC疯子博主的两篇评论

标签:运算,32,背下,大写,---,等价,小写,应该
From: https://blog.csdn.net/fen_0108/article/details/139151438

相关文章

  • 形态学操作:腐蚀、膨胀、开闭运算、顶帽底帽变换、形态学梯度区别与联系
    一、总述相关概念二、相关问题1.形态学操作中的腐蚀和膨胀对图像有哪些影响?形态学操作中的腐蚀和膨胀是两种常见的图像处理技术,它们通过对图像进行局部区域的像素值替换来实现对图像形状的修改。腐蚀操作通常用于去除图像中的噪声和细小的细节,使得图像的边缘更加清晰......
  • C语言数据运算
    第1关:输入三个整数,求它们的和及平均值。任务描述本关任务:设计一个程序,输入三个整数,求它们的和及平均值。相关知识为了完成本关任务,你需要掌握:算术运算、域宽控制。算术运算C语言的算术运算符有以下几种:①+——加法运算符,如3+5。②-——减法运算符或负值运算符,如5-2,-3......
  • MySQL8.0新特性CTE表达式递归实现累加运算 1+2+…+n 等于多少?
    上一篇内容,通过MySQL存储过程实现累加运算1+2+…+n等于多少的需求,使用当前主流版本MySQL5.7.x和MySQL8.0.x,以及最新的MySQL8.4LST版本。WITHAS子句在MySQL8.0.x及更高版本中得到支持,而在MySQL5.7及以下版本中则不支持。参考地址如下:https://blog.csdn.net/zxrhhm/......
  • C语言 基本算术运算
    函数表达e的x次方:exp(x)x的y次方:pow(x,y)根号x:    sqrt(x)|x|:      abs(x)lnx:      log(x)lgx:     sinx:    sin(x)cosx:    cos(x)分离个位十位百位千位的数字千位:x/1000%10百位:x/100%10十位:x/10%10......
  • python 基础习题3--数据类型和运算符
    1.  100/4+2*3 运行结果是 ()                    A、10B、81C、31D、50    E、31.02. Python 中的== 代表的是 (  )A、把左边的值赋值给右边;B、把右边的值赋值给左边 ;C、比较左右......
  • 位运算符在 Javascript 中的运用
    零、资料JavaScript中的位运算和权限设计javascript位运算技巧巧用JS位运算JavaScript位运算及其妙用聊聊JavaScript中的二进制数一、权限在权限设计时,每一个基础权限单元都是二进制数形式,有且只有一位值是1,其余全部是0,即权限码是 2^n 。所以,在这套设......
  • 原/反/补码与位运算的基础概念
    零、参考资料计算机组成原理系列(一):浅谈计算机中的“补码”计算机系统#3为什么计算机中的负数要用补码表示?Under-One、一些技术概念机器数与真值真值:在日常的书写习惯中,往往用正、负号加绝对值表示数值,用这种形式表示的数值为真值。例如100D,-50D,-76O等机器数:在计......
  • PHP函数 算术运算符
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';//算术运算符/***+$a:标识;根据情况将$a转化为int或float。*-$a:取反;$a的负值。*$a+$b:加法;$a......
  • PHP函数 赋值运算符
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';//赋值运算符/***例子等同于操作*$a+=$b等同于$a=$a+$b加法*$a-=$b等同于$a=$a-$......
  • PHP函数 比较运算符
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';//比较运算符/***$a==$b等于true,如果类型转换后$a等于$b。*$a===$b全等true,如果$a等于$b,......