首页 > 其他分享 >位运算

位运算

时间:2024-03-07 23:00:14浏览次数:16  
标签:判断 运算 奇数 二进制 nums 偶数 ++

说明

参考灵神的题单刷题
总结一些技巧

判断一个数二进制形式下第i位是否为1

可以将该数看作一个集合,该集合存储的是二进制表示下为1的下标。

//n >> i 后的最低位表示n的第i位
if(n>>i & 1)
{
	if(i%2) 奇数++
	else 偶数++
}

2的幂或者4的幂

  1. 2的幂
    整个二进制形式的数只有一个1,那么我们考虑n-1显然转换为2进制后,那个1会变为0
bool check2 = n>0 && (n & (n-1)) == 0
  1. 4的幂
    同样二进制形式只有一个1,可以利用余数来判断2%3 = 2 4%3 = 1

判断该位是否为1

判断第i位是否为1,1<<i 相当于\(2^i\)整个二进制形式下只有第i位为1

n & (1<<i)

求解一个数中1的个数

//将一个数的最低位1变为0 n&(n-1)
while(n)
{
	n = n&(n-1);
	res++;
}
return res;

奇数和偶数中1的数量关系

考虑两个相邻的奇数偶数

//i为奇数
nums[i] = nums[i-1]+1;
//i为偶数
nums[i] = nums[i>>2];

判断两个数二进制形式不同的位数

不同->异或 -> 求异或的1的个数

标签:判断,运算,奇数,二进制,nums,偶数,++
From: https://www.cnblogs.com/XTG111/p/18059765

相关文章

  • MCU上三角函数运算速度对比
    前言使用170M主频M4f核芯片(STM32G431),启用浮点加速,启用arm_dsp库。对比条件:方式输入输出cordicq15q15arm_dsp_q15q15q15arm_dsp_q31q31q31arm_dsp_f32floatfloatmathfloatfloatmathdoubledoubletaylor6floatfloat测试代码硬......
  • 编程语言中,差、交、并、自然连接、选择、投影、笛卡尔积分别都是什么运算...
    原文:https://blog.csdn.net/muzihuaner/article/details/119529646交(Intersection):关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:R∩S={t|t∈R∧t∈S}简单来说,运算结果就是两或多个实体集所共有的部分 并(Union):......
  • c语言四则运算小程序
    本文源程序代码来源于csdn一位博主:文章链接:http://t.csdnimg.cn/L29fs原程序简洁凝练,以简短的代码写出了一个加法运算器。以下是运行结果(本文全程用visualstudio2022进行代码的编写与运算):通过对该代码的运算,我个人认为有以下问题:(1)尽管该代码简洁明了,但只有加法运算,缺少减......
  • php7中的三元运算符的区别
    <?php$tmparr=['cover'=>'http://img.immomo.com.cn'];echoisset($tmparr['cover'])."\n";echo!empty($tmparr['cover'])."\n";$rep=isset($tmparr['cover'])&&!empty......
  • C语言基础-1、逻辑类型和运算
    一、逻辑类型和运算#include<stdbool.h>之后就可以使用bool和true、falseex1:#include<stdio.h>#include<stdbool.h>intmain(){ boolb=6>5; boolt=true; printf("%d\n",t); t=2; printf("%d\n",t); printf("%d\n&q......
  • numpy基础运算
    numpy基础运算importnumpyasnpt1=np.array([1,2,3,4,5])#numpy数组类型为numpy.ndarrayprint("type(np.array)=",type(t1))t2=np.array(range(6))print("t1:",t1)print("t2:",t2)#np.arange([start,]stop[,stop,],dtype=......
  • 基本运算符
    Java语言支持如下运算符重点掌握的运算符算数运算符:+、-、*、/、%、++、--%(取余、模运算):例如11/5=2..1(余1)+、-、*、/运算代码举例publicclassDemo01{publicstaticvoidmain(String[]args){inta=10;intb=20;in......
  • 4.Python3 运算符
    Python3运算符1.Python算术运算符以下假设变量a=10,变量b=21:运算符描述实例+加-两个对象相加a+b输出结果31-减-得到负数或是一个数减去另一个数a-b输出结果-11*乘-两个数相乘或是返回一个被重复若干次的字符串a*b输出结果210/除......
  • JAVA学习笔记--运算符
    运算符注意:()的优先级最高,因此可以多打一些()提高代码的可读性!!算术运算符:+、-、*、/、%(模:取余)、++(自增)、--(自减)publicclassDemo1{publicstaticvoidmain(String[]args){inta=10;intb=20;System.out.println(a+b);......
  • 基本操作之——位运算
    dev_clear_window()dev_disp_text('数128位左移两位为'+lsh(128,2),'window','center','center','black','box_color','#00ffffc0') dev_clear_window()dev_disp_text('数128位右移两位为'+rsh(12......