​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​

article/2025/9/28 12:00:58

说明

所有的位运算符操作的都是二进制,而不是我们日常生活中常用的十进制。

在系统中,一个字节占8位。 

按位与运算符(&)

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

运算规则:如果两个二进制数的同一个位数上的数都为1,则当前位为1,否则为0.

示例:0&0=0;  0&1=0;  

按位或运算符(|)

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

运算规则:如果两个二进制数的同一个位数上的数有一个不为0则当前位为1,否则为0.

示例:0|0=0;  0|1=1;  1|0=1;   1|1=1;

取反运算符(~)

参加运算的一个数据,按二进制位进行“取反”运算。

示例:~1=0;  ~0=1;

异或运算符(^)

用于比较两个二进制数的相应位。在执行按位异或运算时,如果两个二进制数的相应位都为1或两个二进制数的相应位都为0,则返回 0;如果两个二进制数的相应位其中一个为1,另一个为0,则返回 1;

示例:10^15= 5  

二进制算法: 

 

位移运算符(<<)和(>>

位移运算符分为左位移运算符“<<”和右位移运算符“>>”,分别用于向左和向右执行位移运算。对于X<<N 或 X>>N 形式的运算,含义是将 X 向左或向右移动 N 位,X 的类型可以是 int,uint,long,ulong,byte,sbyte,short 和ushort 。需要注意的是,byte,sbyte,short,和 ushort 类型的值在进行位移操作后值的类型讲自动转换成 int 类型。

左移位运算符(<<)

“有符号”左移位运算符(<<)将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)。

例如 3 << 2。

首先把3转换为二进制数字00000000 00000000 00000000 00000011,然后把该数字高位(左侧)的两个零移出,其他的数字都往左平移2位,最后在低位(右侧)空位补零。则得到的最终结果是00000000 00000000 00000000 00001100,则转换为十进制是12。


左移1位相当于乘以2,例如 3 << 2 =12 则是将数字3左移2位 = 3*2*2.

在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

右移位运算符(>>)

“有符号”右移位运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数。
“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。

>>运算规则:按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,移位后得到的数字为正数则补0,负数补1。

例如11 >> 2,则是将数字11右移2位

 11的二进制形式为:00001011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是00000010.转换为十进制是3.

右移一位相当于除2,右移n位相当于除以2的n次方。

Java也添加了一种“无符号”右移位运算符(>>>),它使用了“零扩展”:无论正负,都在高位插入0。

小结

位移运算符右移一位相当于除以2,左移一位(在不溢出的情况下)相当于乘以2;移位运算速度高于乘除运算。

位运算符的优先级 
~的优先级最高,其次是<<、>>和>>>,再次是&,然后是^,优先级最低的是|。


http://chatgpt.dhexx.cn/article/ZcWhXDBu.shtml

相关文章

第三章 运算方法与运算器

文章目录 定点补码加减法运算补码加减法运算方法溢出及检测溢出检测操作数与运算结果的符号位是否一致最高位的进位和符号位的进位是否一致变形补码 补码加减法的逻辑实现 移码加减运算及实现逻辑移码的加法运算移码加减法的溢出判断直接采用移码运算的溢出判断方法采用双符号判…

2019做报表用什么软件:报表类型,产品推荐

在大数据时代&#xff0c;报表可以帮助我们从海量数据中挖掘有用的数据&#xff0c;选择软件做什么就变得尤为重要。选择什么类型的软件进行报表?推荐哪些报表产品?本文请一位专业的数据分析师&#xff0c;介绍选择报表软件的经验。 ……阅读更多&#xff0c;请戳原文链接&am…

免费报表软件有哪些?5款热门工具

在企业管理过程中&#xff0c;报表往往都会通过一些简洁的图表方式&#xff0c;为大家呈现所有的数据。报表软件&#xff0c;可以在操作的过程中有效提升工作效率&#xff0c;所以有很多企业早就已经选择跟随信息技术的潮流&#xff0c;选择报表软件工具。很多人也一直都在关注…

分享几款好用免费的报表软件_报表软件推荐

Smartbi Insight Smartbi Insight&#xff08;企业报表平台&#xff09;以中国式报表、多维度分析、可视化仪表盘为核心&#xff0c;满足报表需求的功能以“真Excel”为特色&#xff0c;将Office Excel和WPS表格变为企业级WEB报表设计器&#xff0c;表格样式与计算逻辑的灵活性…

JimuReport积木报表 v1.5.8版本发布—免费的数据可视化报表

项目介绍 一款免费的数据可视化报表&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完成报…

报表开发流程

报表开发是数据分析师的常见工作之一。报表是业务监控必备工具之一(用数据说话)&#xff0c;另一方面&#xff0c;报表监控的指标通常都是业务相关的重要指标&#xff0c;做报表的过程也是深入了解业务的过程。 把数据分析分为“描述、解释、预测、控制”4个层级。那么报表开发…

免费报表工具 - RDP报表工具

公司一直用ireport&#xff0c;后来偶然在一个报表QQ群里&#xff0c;看到了有人发RDP报表工具链接&#xff0c;一开始就以为是广告&#xff0c;都没敢点&#xff0c;要知道现在有太多骗子&#xff0c;后来看到群里有人问问题&#xff0c;又截了一些图&#xff0c;才敢放心点进…

mysql 免费报表工具_10款最出色的免费数据库管理工具

任何web软件和应用程序都需要强大的数据库管理工具。目前,网上的数据库管理工具各式各样,而开发者选择一款适合自己的数据库管理工具尤为重要。小编为大家收集了10款超强的数据库管理工具,帮助开发者轻松搞定很多难题。 OpenKeyval是一款免费、开源的键值数据库管理工具,基…

java 报表工具_最好用的5款java web免费报表工具

阅读提示&#xff1a; 文章中与FineReport软件使用的相关内容&#xff0c;基于软件的V7.0旧版本编写&#xff0c;不代表软件最新的使用方式。 FineReport最新版免费试用&#xff1a;https://www.finereport.com/product/active FineReport最新版使用教程&#xff1a;https://he…

软件测试之报表测试

什么是报表测试? 最近开始在做报表测试&#xff0c;顾名思义&#xff0c;就是指测试报表&#xff0c;报表主要是给一些特定的群体展示一些特定数据或是汇总数据&#xff0c;则报表测试主要是跟一堆数据打交道&#xff0c;检验和确认报表展示出来的数据是否正确&#xff0c;取值…

t3软件怎么生成报表_用友T3如何生成报表

用友T3如何生成报表 用友T3如何生成报表 1、报表生成财务报表 → 文件菜单 → 新建 → 选择行业分类模版 → 在格式状态下修改格式(左下角) → 点击左下角“格式”&#xff0c;使其变成“数据”状态 → 数据菜单 → 关键字 → 录入关键字(单位名称、年、月、日)→ 确定 2、保存…

目前国内几大著名报表软件(2014更新)

目前国内几大著名报表软件&#xff08;2014更新&#xff09; cnham 2017-05-08 09:44:24 4044 已收藏 2 分类专栏&#xff1a; HTML和脚本 文章标签&#xff1a; 报表工具 最后发布:2017-05-08 09:44:24首发:2017-05-08 09:44:24 NO1&#xff1a; 帆软报表&#xff08;F…

合并报表软件选哪个?这篇文章两分钟告诉你!

一想到合并报表工具&#xff0c;大多数人肯定选择传统的Excel进行报表合并。虽然利用传统的办公软件实现合并报表为大多数人所熟悉&#xff0c;但是它也逐渐显现出一系列问题。 1.我们在分析报表时&#xff0c;各种不同类型数据之间的经济逻辑关系错综复杂&#xff0c;导致分析…

合并报表软件系统推荐

​手工合并报表时&#xff0c;经常遇到很多问题&#xff0c;而且效率低下&#xff0c;而专业的合并报表软件只需要几步&#xff0c;就能快速准确汇总各子报表&#xff0c;生成合并的报表并动态展示。尤其是对于财务报表来说&#xff0c;能节省大量手工合并做账的重复做工精力。…

2022年,4款值得用的报表工具软件推荐!

“我们企业想用一个报表工具软件&#xff0c;你有推荐吗&#xff1f;”这是小编这两年被问到最多的问题&#xff0c;但凡有点规模的公司&#xff0c;都想使用报表工具。 一、报表工具软件到底怎么选 那报表工具软件到底怎么选&#xff0c;从哪几个维度出发呢&#xff1f;根据…

软件测试报表统计,排行榜Top4的统计报表软件测评

阅读提示&#xff1a; 文章中与FineReport软件使用的相关内容&#xff0c;基于软件的V7.0旧版本编写&#xff0c;不代表软件最新的使用方式。 FineReport最新版免费试用&#xff1a;https://www.finereport.com/product/active FineReport最新版使用教程&#xff1a;https://he…

专业测评:5款热门的免费报表软件

现在报表的需求越来越多变&#xff0c;无法快速响应的报表软件已经不算好的报表软件了&#xff0c;而很多好的报表软件又需要收费使用。好用的免费报表软件必须具备简捷、专业、灵活的特点&#xff0c;这里就给大家测评几款免费报表软件。 1、FineReport FineReport的每一个功…

python3--opencc安装方式

尝试用gensim训练维基百科中文数据的word2vec&#xff0c;需要使用到opencc这个库来转换繁简体。 直接 pip intall opencc-python会出错&#xff1a; command errored out with exit status 1: python setup.py egg info check the logs for full command output. 找了好久都在…

Python3.6安装opencc-python

Python3.6安装opencc-python 近期因为项目需求&#xff0c;需要将文本中的繁体中文转换成简体&#xff0c;查了些资料&#xff0c;发现opencc是个很好的库&#xff0c;但却遇到了无法安装的问题。 生产环境是Python 3.6&#xff0c; Mac系统&#xff0c;通过pip命令安装包 pip…

nodejs 使用opencc 实现一个简体转台湾繁体的服务

简体转繁体 使用场景: app接口需要对台湾用户返回繁体, api是php开发的, 由于服务器原因不能安装上php的opencc扩展, 所以使用了nodejs 来提供一个api供php调用 首先安装好nodejs跟opencc扩展 附: opencc github GitHub - BYVoid/OpenCC: Conversion between Traditional…