位运算符与位移运算符

2024-03-25 14:04
文章标签 位移 运算符

本文主要是介绍位运算符与位移运算符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

按位与&  两个二进制数字都是1 取1否则取0

按位或I   两个二进制数字都是0取0否则取1

按位取反~如果该位为0则1 ,为1取0

按位异或 ^ 相同为零相反为1

移位运算符

有三个: <<, >> ,>>>,都是二元运算符,且都是按照二进制比特位来运算的。

1. 左移 <<: 最左侧位不要了, 最右侧补 0.

int a = 0x10;
System.out.printf("%x\n", a << 1);
// 运行结果(注意, 是按十六进制打印的)
20

. 右移 >>: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)

nt a = 0x10;
System.out.printf("%x\n", a >> 1);
// 运行结果(注意, 是按十六进制打印的)
8
int b = 0xffff0000;
System.out.printf("%x\n", b >> 1);
// 运行结果(注意, 是按十六进制打印的)
ffff8000

. 无符号右移 >>>: 最右侧位不要了, 最左侧补 0

int a = 0xffffffff;
System.out.printf("%x\n", a >>> 1);
// 运行结果(注意, 是按十六进制打印的)
7fffffff

这篇关于位运算符与位移运算符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

【重学 MySQL】十九、位运算符的使用

【重学 MySQL】十九、位运算符的使用 示例检查权限添加权限移除权限 在 MySQL 中,位运算符允许你直接在整数类型的列或表达式上进行位级操作。这些操作对于处理那些需要在二进制表示上进行直接修改或比较的场景特别有用,比如权限管理、状态标记等。 &(位与) 对两个数的二进制表示进行位与操作。只有两个相应的二进制位都为 1 时,结果的该位才为 1,否则为 0。 |(位

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

第二十四章 rust中的运算符重载

注意 本系列文章已升级、转移至我的自建站点中,本章原文为:rust中的运算符重载 目录 注意一、前言二、基本使用三、常用运算符四、通用约束 一、前言 C/C++中有运算符重载这一概念,它的目的是让即使含不相干的内容也能通过我们自定义的方法进行运算符操作运算。 比如字符串本身是不能相加的,但由于C++中的String重载了运算符+,所以我们就可以将两个字符串进行相加、但实际

《C++中的移动构造函数与移动赋值运算符:解锁高效编程的最佳实践》

在 C++的编程世界中,移动构造函数和移动赋值运算符是提升程序性能和效率的重要工具。理解并正确运用它们,可以让我们的代码更加高效、简洁和优雅。 一、引言 随着现代软件系统的日益复杂和对性能要求的不断提高,C++程序员需要不断探索新的技术和方法来优化代码。移动构造函数和移动赋值运算符的出现,为解决资源管理和性能优化问题提供了有力的手段。它们允许我们在不进行不必要的复制操作的情况下,高效地转移资源

Java基础--基本运算符介绍

Java运算符 用于指明对于操作数的运算方式。 分类: 按照操作数的数目来进行分类: 单目a++ 双目a+b 三目(a>b)?x:y; 按照运算符的功能来进行分类: 算术运算:+ - * / %(取余)++ – 如: int x=1; x=x+1;//x空间内的值,自己增加了一个 x++;//x空间内的值,自增一个 ++x;//对于x空间内的值来讲都是一致,最终的结果都自

【MATLAB】运算符及其优先级

在MATLAB语言中,运算符可以灵活组合以构建更复杂的运算表达式。需要注意的是,与其他高级编程语言类似,MATLAB中的运算符也有优先级。掌握运算优先级有助于我们正确地执行复杂的计算。以下是按照从高到低顺序排列的MATLAB运算符及其优先级列表。 括号 ()。数组的转秩 ( .’ ),数组幂 ( .^ ) ,复转秩 ( ’ ),矩阵幂 ( ^ )。代数正 ( + ),代数负 ( - ),逻辑非

C++ 第7章 运算符重载

7.1 运算符重载规则 7.1.1 重载运算符的限制 可重载运算符: + - * / % ^ & | ~! = < > += -+ *= /= %=^= &= |= << >> >>= <<= == !=<= >= && || ++ -- ->* , ->[] () new delete 不可重载运算符: . .* :: ?: sizeof 重载运算符函数可以对运算符做出新的解

java复习第六课,运算符

java语言支持运算符: 算数运算符:+,-,*,/,%,++,-- 二元运算符(+,-,*,/,%) 整数运算: 如果两个操作数有一个是Long,那么结果就为Long。 没有Long时,结果就为int,即使操作数全为shot,byte,结果也是int。 浮点运算: 如果两个操作数有一个是double,那么结果就为double。 只有两个操作数都是float,则结果才能为float

[记录]-js中的==运算符和===运算符。

概要 在JavaScript中,==和===运算符一直是一个令人头疼的问题。==用来判断等式两边的值是否宽松相等。===用来判断等式两边的值是否严格相等。 本文对这两种运算符的判断规则做出了详细解析与总结。 一、=== 严格相等 严格相等的运算规则很简单。=== 运算符在比较时不进行类型转换。只有在两个值的类型和内容都完全相同时,它才会返回 true。 例如: 5 === '5'; //

FPGA第 10 篇,Verilog 中的运算符和分支语句

前言 我们都知道 Verilog 作为一种硬件描述语言,不仅用于设计和仿真数字电路,还为开发者提供了强大的工具,用于控制和优化硬件的行为。其中运算符和分支语句是 Verilog 中的两大核心组成部分,它们负责执行逻辑操作、数学运算以及决定逻辑流的控制。 运算符 在 Verilog 中用于进行各种计算和逻辑操作,它们类似于软件编程中的运算符,但特定于硬件操作,涵盖了算术、逻辑、按位操作、移位操