首页 > 其他分享 >用二进制表示状态

用二进制表示状态

时间:2022-11-13 09:22:53浏览次数:39  
标签:表示 状态 int 二进制 位是 balabala 二进制位 state 表达式

用二进制位表示状态

使用条件

条件一:保证二进制位足够多。
条件二:如果用的是 int 类型,最多可以使用的位数是31位,最高位是符号位不能用。若要用32位,要用 unsigned int 类型。

如何检查第i位是1还是0呢

用表达式:

state >> i & 1

常用语句:

if((state>>i&1)==0) balabala;

if((state>>i&1)==1) balabala;

如何对第i位置1呢?

表达式:state + (1<<i);,注意 + 号优先级高于 << ,还有要确保state 第 i 位是 0 才行,否则加 1 导致进位,就全都错误了。

常用表达式:

if((state>>i&1)==0) state + (1<<i); //一定要确保state之前的第 i 位是 0

如何对第 i 位置 0 呢?

表达式:state - (1<<i);,注意 - 号优先级高于 <<,还有确保state第 i 位 是 1 才行,否则减1也会导致全部错位的严重后果。
常用表达式:

if((state>>i&1)==1) state - (1<<i);//一定要确保state之前的第 i 位是 1

标签:表示,状态,int,二进制,位是,balabala,二进制位,state,表达式
From: https://www.cnblogs.com/xiaofenga/p/16885406.html

相关文章

  • 【Java Web】项目通用返回模块ServerResponse:枚举code状态码、泛型返回值、序列化注解
    一、枚举类编写ResponseCodepackagecom.boulderaitech.common;/***编写枚举类的步骤*(1)编写所需的变量*(2)编写枚举类构造方法*(3)编写枚举的值,调用构造方法,使......
  • pinia修改状态的几种方式
    //1main.current++//2main.$patch({current:22,name:'妹妹'})//3main.$patch(state=>{//state.current++,(state.name='hahF')//})//4main.$stat......
  • 设计模式学习(十七):状态模式
    设计模式学习(十七):状态模式作者:Grey原文地址:博客园:设计模式学习(十七):状态模式CSDN:设计模式学习(十七):状态模式状态模式状态模式是一种行为型模式。对象的行为依赖于它的......
  • 组件的状态(state)和属性(props)之间有何不同?(必会)
    组件的状态(state)和属性(props)之间有何不同?(必会)点击查看代码State是一种数据结构,用于组件挂载时所需数据的默认值。State可能会随着时间的推移而发生突变,但多数时......
  • 如何修复处于recovery挂起状态的数据库
    检查数据库的状态数据库的状态有:online、offline、restoring、recovering、suspect、emergency、recoverypendingSELECTname,state_descfromsys.databases 可能......
  • Hibernate三种实体状态(五)
    一.Hibernate的三种实体状态Hibernate有三种实体状态,有瞬时态(transiant),持久态(persistent),游离态(detached)。简单理解就是,瞬时态指的是刚New新建的一个对象,没有放......
  • mysql判断主从状态
    参考:https://blog.csdn.net/bigtree_3721/article/details/76735214?locationNum=5&fps=1showslavestatus\G会显示主从同步状态例如MySQL>showslavestatus\G***......
  • 【深入浅出 Yarn 架构与实现】2-4 Yarn 基础库 - 状态机库
    当一个服务拥有太多处理逻辑时,会导致代码结构异常的混乱,很难分辨一段逻辑是在哪个阶段发挥作用的。这时就可以引入状态机模型,帮助代码结构变得清晰。一、状态机库概述一......
  • HTTP报错的状态码原因
    一、400错误说明服务器无法理解用户的请求,除非进行修改,不然你按再多刷新也没有用。很有可能的情况是,你不小心输入错误了,导致服务器根本不知道你要表达什么。认真检查有没......
  • 有状态服务和无状态服务的区别
    状态是web服务的概念,比如不需要登录的浏览门户网站就是无状态的,需要登陆转账买东西这种就是有状态的  有状态服务和无状态服务的区别:       有状态和无......