移位运算符 位逻辑运算符

2023-05-16

移位运算符

移位运算符就是在二进制的基础上对数字进行平移。 

按照平移的方向和填充数字的规则分为三种: <<(左移)、>>(带符号右移)和>>>(无符号右移)。   在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的结果相同。  
  三种移位运算符的移动规则和使用如下所示:   <<运算规则: 
按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。   语法格式: 
  需要移位的数字 << 移位的次数 
  例如: 3 << 2,则是将数字3左移2位   计算过程:   3 << 2 
  首先把3转换为二进制数字 
0000 0000 0000 0000 0000 0000 0000 0011, 然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是 0000 0000 0000 0000 0000 0000 0000 1100, 
则转换为十进制是12.  
  >>运算规则: 
按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃), 高位的空位补符号位,即正数补零,负数补1.   语法格式: 
  需要移位的数字 >> 移位的次数 
  例如11 >> 2,则是将数字11右移2位   计算过程: 
11的二进制形式为: 
0000 0000 0000 0000 0000 0000 0000 1011, 
然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终 结果是: 
0000 0000 0000 0000 0000 0000 0000 0010. 转换为十进制是2.  
  >>>运算规则: 

按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。 无论正数还是负数都在高位插入0;


位逻辑运算符

    包括:
    & 与;| 或;~ 非(也叫做求反);^ 异或

    “& 与”、“| 或”、“~ 非”是基本逻辑运算,由此可以演变出“与非”、“或非”、“与或非”复合逻辑运算。“^ 异或”是一种特殊的逻辑运算,对它求反可以得到“同或”,所以“同或”逻辑也叫“异或非”逻辑。

例子:
5&3=1
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0001

-5&3=3
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0011

5|3=7
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0111

-5|3=-5
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0011
1111 1111 1111 1111 1111 1111 1111 1011

~5=-6
0000 0000 0000 0000 0000 0000 0000 0101
1111 1111 1111 1111 1111 1111 1111 1010

~-5=4
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0100

5^3=6
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0110

-5^3=-8
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0011
1111 1111 1111 1111 1111 1111 1111 1000

http://wenku.baidu.com/view/35d6763c5727a5e9856a6198.html

http://www.blogjava.net/rosen/archive/2005/08/12/9955.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移位运算符 位逻辑运算符 的相关文章

  • 【总结】记一次log4j包冲突引发es类找不到的问题

    问题现象 某天 xff0c 某个应用搞新的迭代 xff0c 突然报ElasticSearch 7 17 5 相关操作都失败了 xff0c 且问题是必现 xff0c 本地启动也能稳定复现 组内小伙伴按照es jar包冲突排查了一番 xff0c
  • 【总结】hive-jdbc升级后执行spark.sql查询hive报错NoSuchFieldError: HIVE_STATS_JDBC_TIMEOUT

    问题现象 最近做安全软件版本升级 xff0c 将hive jdbc从1 2 1升级到hive 2 3 3 xff0c 升级后 xff0c 发现系统 xff1a 通过spark sql 获取hive schema的功能不能用了 报错信息如下
  • 【总结】docker 安装教程

    各操作系统版本下载地址 mac 版 xff1a https download docker com mac linux版 xff1a https download docker com linux win版 xff1a https down
  • InvokeHelper函数的用法

    ActiveX控件的方法和属性操作与生成的C 43 43 类成员函数相关联都是通过InvokeHelper函数的调用来完成的 xff0c InvokeHelper函数的第一个参数是由Component Gallery xff08 控件提供者
  • 【总结】解决dubbo 升级至apache 2.7.18版本发生Zookeeper连接失败问题

    问题描述 最近在做系统的架构升级 xff0c 升级应用dubbo版本号至apache 2 7 18版 xff0c 发生Caused by java lang IllegalStateException Failed to connect w
  • 【总结】hadoop 磁盘满导致集群宕机排查解决

    hadoop 集群因磁盘满了 xff0c 导致服务挂掉 xff0c 甚至有机器宕机 当机器重启后 xff0c 启动nameNode 和 journalNode 有报错 1 启动 Namenode 错误信息 2023 03 27 10 23
  • 【总结】Linux vim编辑文件中文乱码cat正常(亲测有效)

    最近为了测系统的兼容性 xff0c 公司运维装了一台统信UOS arm 64的系统 xff0c 在该操作系统上部署时 xff0c 发现vim 编辑文件中文乱码 xff0c 但是使用cat 查看文件 xff0c 却是正常 网上搜索了一番 xf
  • 【总结】Springboot 从2.0.0升级至2.3.12版本hive使用报错问题解决

    背景 公司springboot 版本终于从老古董2 0 0 release 升到2 3 12版本了 xff0c 应用启动 系统登陆都正常 xff0c 但在回归验证hive时 xff0c spark sql 操作hive相关的功能却用不了 经
  • PCB封装尺寸-0402-0603-0805

    封装尺寸与封装的对应关系 封装尺寸功率电阻耐压值 V0201 1 20W2504021 0mmx0 5mm 1 16W5006031 6mmx0 8mm 1 10W5008052 0mmx1 2mm 1 8W15012063 2mmx1 6
  • SpringCloud五大核心组件使用方法

    目录 SpringCloud各组件简单介绍EurekaFeignRibbonHystrixzuul SpringCloud各组件使用方法前提准备Eureka入门案例1 新建Module2 修改pom文件3 创建 96 application
  • java变量的定义

    JAVA数据类型 对于整型数据 xff0c 通常情况下使用int类型 但是如果表示极大的数据 xff0c 就需要long类型了 xff0c byte和short类型主要用于特定的应用场合 xff0c 例如 xff1a 底层的文件处理或者需要
  • java数据类型转换(强制转换)

    数据类型的转换 xff0c 分为自动转换和强制转换 自动转换是程序在执行过程中 无声 进行的转换 xff0c 不需要提前声明 xff0c 一般是从位数低的类型向位数高的类型转换 xff1b 强制转换则必须在代码中声明 xff0c 转换顺序不
  • 斗鱼直播与熊猫直播竞品分析

    引言 xff1a 目前国内直播平台虽然十分火爆 xff0c 但是直播的市场尚未成熟 xff0c 斗鱼等其他直播平台在利用自己用户的基础一直处在直播平台的主流市场 xff0c 而新晋直播平台开始大肆的宣传和吸引用户 xff0c 最终直播这块市
  • 知乎产品分析|知识社区何去何从

    一 引言 2017 年 2 月 xff0c 知乎月独立用户设备数再次回升 xff0c 相比 1 月上涨了 11 2 xff0c 达到了 1109 万台 1 1 目的 通过对知乎这款产品的分析 xff0c 锻炼自己的思维能力 xff0c 深化
  • 我的vimrc配置文件

    34 vundle begin set nocompatible 34 与vi不一致 filetype off filetype plugin on 34 检测插件 set rtp 43 61 vim bundle vundle 34 载入
  • 以CSDN为例解释尼尔森十大交互原则

    一 状态可见原则 用户在网页上的任何操作 xff0c 不论是单击 滚动还是按下键盘 xff0c 页面应即时给出反馈 即时 是指 xff0c 页面响应时间小于用户能忍受的等待时间 举例 xff1a CSDN上文章底部都会有一个 喜欢 按钮 x
  • 游戏化思维——核心驱动力

    游戏是一个令人着迷 xff0c 并且能够让人沉迷于此的东西 xff0c 而游戏之所以如此迷人 xff0c 不但是游戏的制作精良和剧情引人入胜 除此之外还有些其他原因 xff0c 激励人民玩游戏的原因是 xff1a 游戏能够触及到人性的核心驱
  • 从产品设计到用户设计

    从产品设计到用户设计 一说起产品设计 xff0c 人们往往想到两个方面 感官方面 功能方面 感官方面 xff1a 精心设计的产品能够给用户带来赏心悦目的感觉 xff0c 当然极大部分是属于触感方面 xff08 嗅觉和味觉因为局限问题无法在产
  • 为体验设计——使用第一

    产品设计和用户体验设计有什么不同呢 xff1f 每个产品都是以用户是人类为前提而设计出来的 xff0c 而产品的每一次使用 xff0c 都会产生相应的体验 用户体验设计并完全不等同于产品设计 但是对于一个简单的情况下 xff0c 创建一个良
  • 用户体验和网站

    用户体验对于所有的产品和服务来讲 xff0c 都是至关重要的 现在讨论一种特殊产品的用户体验 xff1a 网站 xff08 这里的 网站 一词包括以内容为主的网站产品和以交互为主的网站应用 xff09 在网站上 xff0c 用户体验比任何一

随机推荐

  • .net C# 堆 栈 垃圾回收 GC

    NET C NET C NET C NET C NET C NET C NET C 栈 堆 垃圾回收 GC 1 尽管在 NET framework下我们并不需要担心内存管理和垃圾回收 Garbage Collection xff0c 但是我
  • 值类型总是分配在栈上吗?

    不是 xff0c 比如下面三种情况 xff1a 1 引用类型内部的变量 xff0c 即使是值类型 xff0c 也会随同引用类型的实例一起被分配在堆上 2 对于值类型的数组 xff0c 由于数组是引用类型 xff0c 数组内的值类型元素 xf
  • .NET垃圾回收机制 转

    在 NET Framework中 内存中的资源 即所有二进制信息的集合 分为 34 托管资源 34 和 34 非托管资源 34 托管资源必须接受 NET Framework的CLR 通用语言运行时 的管理 诸如内存类型安全性检查 而非托管资
  • Spring Boot 升级所遇到的坑们s 1.5.x升级到2.1.x

    下面总结从Spring Boot 1 5 15 Release版本升级到2 1 1 Release版本所遇到的问题 xff0c 因为每个项目所依赖库的多少不同 xff0c 所以有些我列出的问题可能你的产品没有遇到 xff0c 或者你的问题我
  • A simple Binary Search Tree written in C# and the case at the bottom

    Introduction In Computer Science a binary tree is a hierarchical structure of nodes each node referencing at most to two
  • vim学习资源

    http www vimer cn http coolshell cn http vimcdoc sourceforge net doc quickfix html 就这两个资源用好了 xff0c 就足够了
  • asp.net 获取客户端IP地址

    private string GetClientIP string result 61 HttpContext Current Request ServerVariables 34 HTTP X FORWARDED FOR 34 if nu
  • log4net 使用示例 asp.net + winform

    log4net 是 apache org 在 log4j的基础上推出的针对 NET程序的开源的日志组件 log4net目前的最新版本是 1 2 10 xff0c log4net支持的日志保存方式 xff0c 可谓丰富之极 xff0c 包括
  • Log4net 配置写不同文件

    以下配置了二种写文件 xff0c 第一种根据日期写文件yyyyMMdd txt xff0c 第二种是写固定文件login txt 1 xff0c 下载Log4net组件 xff1a http logging apache org log4n
  • Log4Net使用详解(续)

    说明自从上次在2008年在博客上发表过有关log4net的用法介绍文章之后 xff08 网址 xff1a http blog csdn net zhoufoxcn archive 2008 03 26 2220533 aspx xff09
  • httpWebRequest 通过代理 连接网络

    via Proxy connect the website WebProxy myProxy 61 new WebProxy myProxy Address 61 new Uri 34 http XXXXXXX com 9000 34 my
  • 使用windbg排查一个内存溢出的问题

    发现有一个服务占用大量的内存 奇怪的是服务一开始的时候只占用100M左右内存 xff0c 随着时间推移越来越大 xff0c 最后导致服务器内存吃紧 这可以算是一种内存泄漏的问题 xff0c 之所以标题不说是内存泄漏 xff0c 最后就会知道
  • 用WinDbg排除“内存溢出”故障

    文章摘要 内存溢出有时像 魔鬼 一样缠绕着我们的程序 xff0c 用一般的方法不易驱除 主要难点是搜查 魔鬼 的藏身之处 这时 xff0c 我们可以请来 WinDbg xff08 Debugging Tools for Windows xf
  • windbg 的常用命令--强大!常用!

    如何手工抓取dump文件 在生产环境下进行故障诊断时 xff0c 为了不终止正在运行的服务或应用程序 xff0c 有两种方式可以对正在运行的服务或应用程序的进程进行分析和调试 首先一种比较直观简洁的方式就是用WinDbg等调试器直接atta
  • 用Windbg调试.NET程序的资源泄漏

    在产品环境中的一个Windows服务出现了异常情况 这是一个基于WCF的 NET程序 xff0c 它向网络应用 xff08 Web Application xff09 提供WCF服务 xff0c 同时也调用其他WCF服务以完成任务 突然 x
  • 堆与栈的区别【收藏】

    网上看到的两篇关于 堆与栈 的介绍 xff0c 讲的比较清楚 1 堆和栈的区别 原地址 xff1a http blog csdn net goingup archive 2006 03 07 618309 aspx 在bbs上 xff0c
  • vimdiff 使用笔记

    vimdiff 是建立在 diff 命令之上的 启动方法 xff1a vimdiff file left file right 或者 vim d file left file right 只在某一文件中存在的行的背景色被设置为蓝色 xff0
  • 负数的二进制表示方法 原码、反码、补码

    6 5 原码 反码 补码 结束了各种进制的转换 xff0c 我们来谈谈另一个话题 xff1a 原码 反码 补码 我们已经知道计算机中 xff0c 所有数据最终都是使用二进制数表达 我们也已经学会如何将一个10进制数如何转换为二进制数 不过
  • 二、十六进制数互相转换

    6 1 为什么需要八进制和十六进制 编程中 xff0c 我们常用的还是10进制 必竟C C 43 43 是高级语言 比如 xff1a int a 61 100 b 61 99 不过 xff0c 由于数据在计算机中的表示 xff0c 最终以二
  • 移位运算符 位逻辑运算符

    移位运算符 移位运算符就是在二进制的基础上对数字进行平移 按照平移的方向和填充数字的规则分为三种 xff1a lt lt xff08 左移 xff09 gt gt xff08 带符号右移 xff09 和 gt gt gt xff08 无符号