基础知识:计算机中的移位运算

移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。 
   在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移 动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就 是移动66次和移动2次得到的结果相同。 

  386 以后的硬件把移位对字长进行取模,右移32位就是右移了0位(CPU 把右移的位数 32 对于字长 32 进行取模运算,得到 0),因此 9 右移 32 位仍然是 9。你可以换一下for循环的条件,比如换成i<=64,你会发现结果是一样的。 

  三种移位运算符的移动规则和使用如下所示: 
  <<运算规则:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。 
  语法格式: 
  需要移位的数字 << 移位的次数 
  例如: 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.数学意义: 
  在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。 
  >>运算规则:按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1. 
  语法格式: 
  需要移位的数字 >> 移位的次数 
  例如11 >> 2,则是将数字11右移2位 
   计算过程:11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010.转换为十进制是3. 
  数学意义:右移一位相当于除2,右移n位相当于除以2的n次方。 
  >>>运算规则:按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。 
  其他结构和>>相似。 

计算机组成原理 定点运算-移位、加、减、乘、除(详细解析-看完就会) 定点运算 一、移位运算 1.移位运算的意义:计算机中的移位是数据相对于小数点移位(左移或右移),数据移动,小数点位置不发生变化 2.在平常,数值移位 左移:绝对值扩大 右移:绝对值缩小 3.在计算机中二进制移位 左移:数值绝对值变为原来2倍 右移:数值绝对值变为原来1/2倍 4.算术移位规则 左移1位:机器数对应真值的绝对值变为原来2倍 右移1位:机器数对应真值的绝对值变为原来1/2倍 5.移位过程中,如何填补空位 负数:数值部分和真值相同 二、加法和减法运算 三、乘法运算 四、除法运算 ... 阅读详情

相关推荐

移位运算(无符号移位运算,有符号移位运算)

移位运算,所有移位以5和-5为例移位运算左移(<<)正数负数带符号右移(>>)(右移向前面补对应的符号位所对应的值(正数补0,负数补1))正数负数不带符号右移(>>>)(>>>为java独有语法)正数负数 移位运算 可以移位运算的类型有:iuint,int,lang等类型.我们本次使用int类型 一个int类型占4个字节,共32位,带符号...

Swords 2970

字节对齐

数据对齐的目的是提高CPU读取元素的速度,有些CPU读取元素是从偶数地址开始的,这时如果一个int型的数据存放在起始地址为奇数的地方,这时将需要读取两次,然后将两次读取的结果合并到一起,显然这种方式低效的。改进的办法是让各种数据类型数据对齐,虽然这样增加了一些空间的开销,但它提高了CPU读取元素的效率。

零丁若叹 1109

计算机组成原理——移位运算

文章目录算数移位原码的算数移位反码的算数移位补码的算数移位逻辑移位逻辑移位的应用举例循环移位 移位:通过改变各个数码位和小数点的相对位置,从而改变各数码位的位权。可用移位运算实现乘法、除法 算数移位 原码的算数移位 例如原码为 10101000 进行算数移位 原码的算数移位——符号位保持不变,仅对数值位进行移位。 右移:高位补0,低位舍弃。若舍弃的位=0,则相当于÷2;若舍弃的位≠0,则会丢失精度 左移:低位补0,高位舍弃。若舍弃的位=0,则相当于×2;若舍弃的位≠0,则会出现严重误差 反码的算数移位

流楚丶格念的博客 7918

怎么使用计算机的移动与复制,Excel移动和公式的复制

Excel移动和公式的复制分类:计算机等级|更新时间:2016-07-08|来源:转载对于移动、复制公式的操作与移动、复制单元格的操作方法一样,在这里就不再赘述。和移动、复制单元格数据不同的是,对于公式有单元格地址的变化,它们会对结果产生影响,也就是说,Microsoft Excel会自动地调整所有移动的单元格的引用位置,使这些引用位置仍然引用到新位置的同一单元格。如果我们将单元格移动到原先已被其...

weixin_30068505的博客 441

Java位运算及移位运算

java中能表示整数数据类型的有byte、short、char、int、long,在计算机中占用的空间使用字节描述,1个字节使用8位二进制表示。原码也叫机器码,整数的二进制形式表示,最高位为符号位。1表示负数,0表示正数,除去符号位后剩余其他的所有位是该整数的绝对值的二进制值。反码需要区分是正数还是负数,正数的反码跟原码相同,负数的反码是除符号位外,其他位取反(即负数的最高位是1不变,其他位0变成1,1变成0)。补码也需要区分是正数还是负数,正数的补码跟原码相同,负数的补码是反码最低位加1。

时代各有不同,青春一脉相承。 1612

【408计算机组成原理】—移位运算(七)

逻辑右移:高位补0,低位舍弃逻辑左移:低位补0,高位舍弃。

道阻且长,行则将至。 3124

CPU-关于移位运算符的问题

最近不是很理解算术运算符和移位运算符的区别,就百度了下,记录下来 逻辑左移=算数左移,右边统一添0 逻辑右移,左边统一添0 逻辑右移就是不考虑符号位,右移一位,左边补零即可。 算术右移需要考虑符号位,右移一位,若符号位为1,就在左边补1,;否则,就补0。 所以算术右移也可以进行有符号位的除法,右移,n位就等于除2的n次方。 例如,8位二进制数11001101分别右移一位。 逻辑右移就是[0]...

Vuko_Coding Zone 883

位运算详解之移位运算的神奇操作

移位运算作为位运算的重要分支,从简单的数据缩放,到复杂的加密算法、硬件模拟,都展现出令人惊叹的神奇效果。本文我将深入介绍移位运算的原理、分类及各种神奇操作

1317

C++移位与类型提升

1.C++ >>和

u014652699的专栏 1332

那些年对支付宝的研究[整理]

支付宝功能强大.他内部各个功能间的跳转是通过Uri 实现的.而使用window.location.href 即可.跟浏览器一样的协议.很方便 H5启动支付宝: alipays://platformapi/startapp?appId=20000067&url=网址 alipays://platformapi/startapp?appId=20000691&url=网址 ali...

技术专研 8915

保姆级教程:用CellOracle 0.10.13分析你的单细胞数据,从GRN构建到基因扰动模拟

本文详细介绍了如何使用CellOracle 0.10.13进行单细胞数据分析,从基因调控网络(GRN)构建到基因扰动模拟的全流程。通过环境配置、数据准备、GRN构建和扰动模拟等步骤,帮助研究者高效预测细胞命运决定的分子机制,特别针对实际分析中的易错点提供解决方案。

weixin_42525005的博客 437

有符号右移>>,无符号右移>>>

计算机表示数字正负不是用+ -加减号来表示,而是用最高位数字来表示,0表示正,1表示负 1.有符号右移&gt;&gt;(若正数,高位补0,负数,高位补1) 正数:例如4&gt;&gt;2 首先写出4的二进制数,因为是正数所以最高位为0,也就是第一个 0000 0000 0000 0000 0000 0000 0000 0100 右移两位得到(高位补0) 000000 0000 0000...

BushRo 1万+

接入穿山甲SDK时,Unity打Android包报错日志

SDK工程设置为Enable,项目工程设置为Disable。2、将unitypackage导入包名为:com.DefaultCompany.Myproject的另一个工程,打包报错。3、点击工程默认弹出Enable Android Auto-resolution 设置选项,点击Enable。1、新建一个空工程,设置包名为:com.ceshi.hewen,正常打包无报错,导出unitypackage。2、点击Reset to Defaults 重置参数,再点击ok关闭设置窗口。

不文不武的禾文 3583

位运算

1.按位与&amp;将两个操作数对应的每一位分别进行逻辑与操作2.按位或|将两个操作数对应的每一位分别进行逻辑或操作3.按位异或^将两个操作数对应的每一位进行异或4.按位取反~对一个二进制数的每一位取反5.移位左移运算&lt;&lt;,右移运算&gt;&gt;...

zrh_优快云的博客 226

【银河麒麟桌面系统】安装英伟达(NVIDIA)显卡驱动

本文详细介绍了在麒麟桌面操作系统V10 SP1(版本号2503)上安装NVIDIA RTX 5060显卡驱动的完整流程。主要内容包括:查看系统版本信息,从NVIDIA官网下载Linux 64位驱动,授予执行权限后运行安装程序,处理安装过程中的X server警告、32位库安装、DKMS模块选择等问题,以及安装完成后如何验证驱动状态。同时提供了卸载驱动的步骤和常见问题解决方案,如处理X server警告、libglvnd EGL依赖问题等。该指南适用于需要在国产麒麟系统上安装NVIDIA显卡驱动的用户,包含完

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 6312

华为非AI方向0603笔试真题-爆破小游戏(详细思路+多语言题解)

华为非AI方向0603笔试第二题【爆破小游戏】,提供详细思路讲解以及代码实现。

qq_45776114的博客 358

移位运算(计算机组成原理15)

三种移位运算的方法:算数移位+逻辑移位+循环移位

阿芒Aris的博客 1万+

ROS Motion Planning运动规划库安装方法及进阶使用方法详细介绍

​今天偶然发现了一个优质的运动规划库:ai-winter/ros_motion_planning,比较适合从事ROS移动机器人运动规划研究领域的小伙伴学习和使用,相比于莱斯大学Kavraki实验室提供的开源的著名运动规划库OMPL、或着我之前介绍过的zhm-real开源的zhm-real/MotionPlanning和zhm-real/PathPlanning运动规划库,今天介绍的ROS Motion Planning运动规划库与ROS机器人中常用的Navigation导航框架的兼容性更好,库中的运动规划

慕羽★的博客 5577

移位运算用法总结

位运算总结 原文 一、位运算应用口诀 清零取位要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 二、移位运算 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 ‘&lt;&lt;’左移:右边空出的位置补0,其值相当于乘以2。 ‘&gt;&gt;’右移:左边空出的位,如果是正数则补0,若为负数则补0或1,取决于所用的计算机系统OS X中补1。其值相当于除以2。 ...

神不烦 4万+

Prometheus+Grafana+alertmanager+PrometheusAlert监控告警 实现飞书告警

以上 是以grafana做的邮件告警,但是感觉邮件很少人看。下面是以webhook 可以接入。启动alertmanager (设置 开机在启动)下载prometheusalter 配置文件。这里的告警是基于grafana上搭建的。我们启动PrometheusAlert。写完之后进行重启Prometheus。prometheus 的告警规则。测试 基于我们生产环境做的文档。然后在grafana上导模板。上导入模板就可以 直接引用。访问 grafana页面。重启一下grafana。

墨痕诉清风的博客 856

精密加工零件自动报价智能体设计与实现

摘要 本文设计并实现了一个精密加工零件自动报价智能体系统。该系统通过计算机视觉和几何分析技术,自动读取3D图纸(STEP/STL格式),提取影响加工成本的几何特征,实现精准报价。系统采用模块化设计,包含3D模型解析、特征提取、成本计算和报价生成四个核心模块。关键技术包括:使用PythonOCC处理STEP文件,Trimesh处理STL网格;实现体积、表面积、包围盒等基础几何量计算;开发特征提取算法识别复杂曲面、深孔等加工难点;基于规则库进行可加工性评分和成本估算。相比传统人工报价方式,该系统能显著提高报价效

AI的内部世界的博客 111

Java的移位运算

前言 计算机支持两种移位运算,分别是向左移位 x << k 和向右移位x >> k,左移位会对输入的操作数舍弃最高的k位,并在右端补k个0。而右移位运算却分为两种情况,分别是逻辑右移和算术右移(也叫无符号右移和符号右移),在逻辑右移中,会对操作数舍弃最低的k位,并在左端补k个0,在算术运算中,则对操作数舍弃最低的k位,并在左端补k个最高有效位的值。 对于有符号数来说,最高位有效值是不同的,所以逻辑右移和算术右移将产生不同的效果,而C语言并没有明确定义有符号数该使用哪种类型的右移.

mryang125的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C语言中的位级运算、逻辑运算和移位运算

C语言的位级, 逻辑和移位运算(偏底层理解)

CS@zeny的博客 4406

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

计算机组成原理笔记——移位运算,补码加减法及溢出现象

❤️ 移位运算 移位规则:符号位不变, 因为负数移位之后还是负数, 不可能因为一个移位就变成正数了 移位运算分为 逻辑移位 和 算数移位 算数移位(针对有符号数) 例题 : 1. 如 [X]原 = 0,1101,左移一位为0,1010 右移一位为 0,0110(空位补0) 2. 如 [X]原 = 1,1101,左移一位为1,1010 右移一位为 1,0110(空位补0) 3. 如 [X]反 ...

weixin_43920952的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

位运算中的移位运算

编程语言中的位运算是相通的,这里我们讨论的是Java中的移位运算。 在Java中有8大基本数据类型,但是只有 byte、short、int、long和char 能够使用位运算。位运算包括有:按位与、按位或、按位异或、左移运算、右移运算和无符号右移运算。 我们今天讨论后边三种。在讨论这三种方式之前,我们需要知道一些基础的知识:原码、反码和补码。 数据在计算机中是以补码的形式保存的,意味着在进行位运算时使用的是补码计算,这点需要注意。数据在计算机中是以二进制补码的形式保存,二进制可以细分为无符号数、正数和负数三

cheng的博客 1635

计算机中二进制的移位运算

移位运算符: 高位左移后溢出,舍弃: 如:     &lt;&lt;:左移    左移是将一个二进制操作数对象按指定的移动位数向左移,左边溢出的位数被丢弃,右边的空位用0补充。左移相当于乘以2的幂次。∫将一个运算对象的各二进制位,全部左移若干位(左边的二进制丢弃,右边补0)             例如:左移1位 &gt;&gt;:有符号右移    右移是将一个二进制操作数对象按指定...

luzhensmart的专栏 1万+
上一篇: How to export data from postgresql and reload
high_java
博客等级 码龄20年 8粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值