相当于 Java 中的 C++ 移位运算符 << 吗?

2024-02-24

C++ 移位运算符<<不循环。例如,如果您这样做:

// C++
int a = 1;
cout << (a<<38);

你得到 0。但是,在 Java 中,你实际上循环并得到有效值 64。

我需要将一些 C++ 代码转换为 Java,那么我应该使用什么作为等效的<<?


The Java语言规范 http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.19 states:

如果左侧操作数的提升类型为 int,则只有 5 个 右侧操作数的最低位用作移位 距离。就好像右边的操作数受到了 按位逻辑 AND 运算符 & (§15.22.1),掩码值为 0x1f (0b11111)。因此,实际使用的移位距离始终在 范围 0 到 31(含)。

如果左侧操作数的提升类型很长,则只有 右侧操作数的六个最低位用作移位 距离。就好像右边的操作数受到了 按位逻辑 AND 运算符 & (§15.22.1),掩码值为 0x3f (0b111111)。因此,实际使用的移位距离始终为 范围 0 到 63(含)。

所以,在你的例子中,(int)(((long)a)<<38)应该管用。

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

相当于 Java 中的 C++ 移位运算符 << 吗? 的相关文章

随机推荐

  • git:错误:您需要首先解析当前索引[重复]

    这个问题在这里已经有答案了 我试图将一个分支与我的分支合并 但出现了合并冲突 看到冲突后 我决定恢复我的分支 但我不确定如何执行此操作 因为我通常运行以下命令的方法似乎无法重置我的分支 git fetch origin git reset
  • $_SERVER['HTTP_HOST'] = 不是我的服务器的 IP

    我的php脚本有 SERVER HTTP HOST 等于一个与我的服务器ip无关的ip 有人有简单的解释吗 我认为某些机器人正在发送完全错误的主机标头 但我认为它无法连接到具有错误主机标头的服务器 thx HTTP HOST由客户提供 在H
  • 如何修复奇怪的 NSLayoutConstraint 错误,这些错误似乎不会影响自定义 UITableViewCell 中的布局

    每次我的自定义 UITableViewCells 由 tableView cellForRowAtIndexPath 绘制时 控制台都会吐出一堆 NSLayoutConstraint 不一致的信息 我理解其中大部分 Unable to si
  • MS Access 2010 导入规范位置?

    我有一个 MS Access 数据库 其中外部数据内的已保存导入具有导入作业 这些作业实际上将某些数据从不同位置导入到某些表中 我无法找出其中存在的每个作业实际导入了哪些表 因为为这些导入指定的名称不清楚且不相关 有什么方法可以找出导入实际
  • 在 alpine linux 上执行 mongodb 二进制文件

    我正在尝试在 Alpine 64 位 Linux 中为 docker 容器运行二进制 mongodb 但运行命令时 mongodb出现以下错误 bash 4 3 mongod bash mongod No such file or dire
  • 我应该使用 Jenkins 重量级执行器还是蝇量级执行器来发送通知?

    我的 Jenkins 管道中有几个步骤可以通知用户 在我的例子中使用 Slack 集成 在 a 中编写通知代码是一个好习惯吗node阻止使用重量级执行器还是将其留在外面以使用蝇量级执行器 根据文档 https github com jenk
  • Postgres:当出现错误时如何执行 Sum 查询?

    我正在使用 sum 函数来查找总数 但出现错误 这是查询 select sum col1 from table name where col2 abc Error function sum text does not exist Hint
  • 如何将 NSMutableArray 传递给另一个 ViewController 类

    我已经创建了 NSMutale 数组 英雄列表视图控制器 我想在另一个 viewController 中使用它地图教程视图控制器 我这样尝试过 在 HeroListViewController h 中 MapTutorialViewCont
  • 如何加快gradle中tomcat的启动过程?

    尝试使用此 gradle 代码片段启动 tomcat task startTomcat type Exec workingDir tomcat home bin commandLine cmd c startup bat 运行此任务后 to
  • Connect-mongo 会话不会自动删除

    我有一个使用 NodeJS Express MongoDB 和 connect mongo 的应用程序 我的问题是 会话过期时似乎不会自动从 MongoDB 中删除 因此数据库大小会不断增长 直到磁盘已满 connect mongo 的开发
  • 免注册 COM 互操作和相关程序集

    我们正在致力于将基于 MFC 的大型应用程序与少数托管 NET 加载项集成 与这些加载项的通信是通过 COM 完成的 从历史上看 我们只是使用注册表来使这些加载项 作为 COM 服务器 可供应用程序使用 但是 现在我们尝试使用免注册 COM
  • 如何在Python中使用wand优化图像大小

    我想使用魔杖调整和优化 png 和 jpg 图像大小 使用 PIL 如果我指定优化选项 我可以保存大约三分之一大小的相同图像 with open filename rb as f pimage PImage open f resized p
  • 表单认证滑动过期不起作用

    我有下面的代码 int intTimeout FormsAuthentication Timeout Hours 60 FormsAuthentication Timeout Minutes var authTicket new Forms
  • Terraform 错误:锁定状态时出错:获取状态锁时出错:发生 2 个错误:

    我尝试了 terraform 版本 v0 12 26 和 v0 13 3 两者都失败了 地形计划 获取状态锁 这可能需要一些时间 错误 锁定状态时出错 获取状态锁时出错 发生 2 个错误 ResourceNotFoundException
  • 初始化期间无法成功更新网络信息

    当我当天第一次启动该应用程序时 我总是遇到上述问题 当我第一次启动应用程序时 我会调用服务器来获取一些数据 然后播放动画视频 服务器调用位于与主 UI 线程不同的线程中 这与网络可达性或动画视频有关吗 我认为第一部分是主要问题 但不能一直重
  • 串口通讯显示

    我正在尝试通过串行端口通信进行聊天 这个聊天必须在 WPF 项目中有一个界面 我已经制作了界面和所有内容 我陷入了通过串口接收响应的困境 我已经尝试从串行端口添加 DataReceived 事件 但我担心我使用错误 因为我以前从未用 C 编
  • 已安装 Scipy 但 Tflearn 表示不支持 Scipy (win7)

    我正在使用 Windows 7 和 tflearn 版本 0 2 2 tensorflow 版本 0 12 1 python 3 5 并且我手动安装了 scipyhttp www lfd uci edu gohlke pythonlibs
  • 使用奏鸣曲管理包时已弃用的警告

    我正在使用 symfony2 7 和 sonata admin 学说 orm 捆绑包 我遵循了官方安装说明 除了一件事之外工作正常 每次请求时 我都会收到以下已废弃的警告 但我不知道如何消除它 Date 2016 10 18 08 58 2
  • 有人可以解释一下 Objective-C 方法声明语法吗

    我正在阅读一本 iPhone 开发书 但并不真正了解 Objective C 在大多数情况下 我能够理解正在发生的事情 但有一些方法声明 如下所示 让我遇到了一些麻烦解析 例如 NSInteger tableView UITableView
  • 相当于 Java 中的 C++ 移位运算符 << 吗?

    C 移位运算符 lt lt 不循环 例如 如果您这样做 C int a 1 cout lt lt a lt lt 38 你得到 0 但是 在 Java 中 你实际上循环并得到有效值 64 我需要将一些 C 代码转换为 Java 那么我应该使