与、或、异或运算,以及常用运算(二进制赋值、取值、左移、右移、求余数、向上取整、向下取整)

本文主要是介绍与、或、异或运算,以及常用运算(二进制赋值、取值、左移、右移、求余数、向上取整、向下取整),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

与、或、异或运算

1.与运算(&)

参加运算的两个数据,按二进制位进行“与”运算。

运算规则:0&0=0;   0&1=0;    1&0=0;     1&1=1;

       即:两位同时为“1”,结果才为“1”,否则为0

例如:3&5  即 0000 0011 & 0000 0101 = 0000 0001   因此,3&5的值得1。

例如:9&5  即 0000 1001 (9的二进制补码)&00000101 (5的二进制补码) =00000001 (1的二进制补码)可见9&5=1。

2.或运算(|)

 

参加运算的两个对象,按二进制位进行“或”运算。

 

运算规则:0|0=0;   0|1=1;   1|0=1;    1|1=1;

 

   即 :参加运算的两个对象只要有一个为1,其值为1。

 

例如:3|5 即 0000 0011 | 0000 0101 = 0000 0111   因此,3|5的值得7。 

例如:9|5可写算式如下: 00001001|00000101 =00001101 (十进制为13)可见9|5=13

3.异或运算(^)

 

参加运算的两个数据,按二进制位进行“异或”运算。

 

运算规则:0^0=0;   0^1=1;   1^0=1;   1^1=0;

  即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。

 

例如:9^5可写成算式如下: 00001001^00000101=00001100 (十进制为12)可见9^5=12  


常用运算:(二进制赋值、取值、左移、右移、求余数、向上取整、向下取整)

1.赋值1 -> 或运算(|)

   例如:40 | (1<<1)  = 420010 1000| 0000 0010 ------------------0010 1010

2.赋值0 -> 与非运算(&~)

例如: 42 & ~(1<<1) = 400010 1010 & ~0000 0010 ==》0010 1010 & 1111 1110
---------------  0010 1000

3.取值 -> 与运算(&)

例如:42 & 1<<1 = 20010 1010 & 0000 0010 -----------------0000 0010

4.乘以2 -> 左移一位( << 1) 

例如:43 * 2 = 43 << 1 = 860010 1011 >> 0101 0110 = 86

5.除以2 -> 右移一位( >> 1)

例如:43 / 2 = 43 >> 10010 1011 >> 0001 0101 = 21

6.除以2求余数 -> 与1( &1)

例如:43 % 2 = 43 & 1 = 10010 1011& 0000 0001--------------- 0000 0001

7.向上取整 

int a , int b => (a + b - 1) / b 比如:a = 8, b = 3 => 2;  a = 9, b = 3 => 3; a = 10, b = 3 => 4;

8.向下取整 

int a , int b => a / b

 

这篇关于与、或、异或运算,以及常用运算(二进制赋值、取值、左移、右移、求余数、向上取整、向下取整)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/633441

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

uva 575 Skew Binary(位运算)

求第一个以(2^(k+1)-1)为进制的数。 数据不大,可以直接搞。 代码: #include <stdio.h>#include <string.h>const int maxn = 100 + 5;int main(){char num[maxn];while (scanf("%s", num) == 1){if (num[0] == '0')break;int len =

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,