当前位置: 首页 > news >正文

【逻辑位移和算数位移】

<< 运算符 && >> 运算符

正数位移

x>>n 中 x 为正数时,会将x的所有位右移x位,同时左边高位补0
在这里插入图片描述
显而易见,运算结束后,值为1 。
可知右移n位,结果就是 x / 2^n:7 / 2 ^2 = 1;

也同理x<<n 会将x的所有位左移x位,右边地位补0,
其运算结果为 x*(2^n)

负数位移

当负数在进行左移运算时,运算方式没有改变
左移几位,就乘上几个2

-2 << 2= -8

逻辑位移和算数位移

当x是有符号整型的负数时,位移运算的结果因编译器的差异会有所改变。
在所有编译器中,会执行逻辑位移算术位移

逻辑位移

逻辑位移不考虑符号位,包括所有符号位进行一起位移以0来填补空白

在这里插入图片描述
可知,负整数位移过程中:

符号位由1变为0,位移的结果为0或正整数
其结果只能通过 二进制 转十进制 进行运算 。

算术位移

算术位移保留最高位的符号位,并用位移前的符号位来填补空白

在这里插入图片描述

以图为例:

位移前后符号不变
位移后的绝对值值为原来的绝对值的 1/2^2=1/4

结语

当进行负数位移时,无论采用哪种位移方式都会降低程序的可移植性
所以我们要记住不要对负数进行位移

http://www.lryc.cn/news/62958.html

相关文章:

  • Blender3.5 边的操作
  • Java与Python、Node.js在人工智能和区块链应用程序开发中的比较
  • 【计算机是怎么跑起来的】基础:计算机三大原则
  • NXP公司LPC21XX+PID实现稳定温度控制
  • 【CE实战-生化危机4重置版】实现角色瞬移、飞翔
  • 强烈建议互联网人转战实体和农业,去了就是降维打击!实体太缺人才了,老板也不缺钱!...
  • 如何将 github pages 迁移到 vercel 上托管
  • 2023五一数学建模竞赛(五一赛)选题建议
  • Packet Tracer - 配置 RIPv2
  • Android类似微信聊天页面教程(Kotlin)四——数据本地化
  • C/C++基础知识
  • Java 入门 - 语法基础
  • Java线程池及拒绝策略详解
  • GitLABJenkins
  • 互联网摸鱼日报(2023-04-26)
  • 石化企业数字化防爆融合通信解决方案
  • NTT学习笔记(快速数论变换)
  • Android类似微信首页的页面开发教程(Kotlin)二
  • PAt A1015 Reversible Primes
  • 解决Lemuroid识别不到蓝牙键盘的问题
  • SpringBoot 使用 Sa-Token 完成权限认证
  • Spring核心与设计思想、创建与使用
  • mysql 备份 还原
  • 每日学术速递4.26
  • RabbitMQ使用StringRedisTemplate-防止重复消费
  • 临沂大学张继群寄语
  • 线程学习笔记
  • 代码随想录算法训练营第四十二天|01背包问题,你该了解这些!、01背包问题,你该了解这些! 滚动数组 、416. 分割等和子集
  • 结构体指针、数组指针和结构体数组指针
  • 项目架构一些注意点