当前位置: 首页 > 知识库问答 >
问题:

长参数的位计算溢出,就像它是int一样

终祯
2023-03-14

有人能给我解释一下为什么下面的计算会溢出吗?

938372878L | (1 << 31) //results to -1209110770

它的行为就好像数字是整数。

共有1个答案

董和泽
2023-03-14

< code>1是一个< code>int文字,这就是为什么< code>(1

938372878L | (1L << 31)

这导致

3085856526
 类似资料:
  • 我希望对长格式的数据帧进行排序,就好像它是宽格式的一样,但是我不希望改变数据帧的结构来使其变宽。如何使用tidyverse/dplyr工具来实现这一点,例如排列、组、forcat::fct_reorder等? 举个例子:如果数据是宽格式的,它会是这样的: 我会简单地按col1和col2对它进行排序,按两列的降序排列,所以它只是交换前两行。 事实上,我有很长的格式,如下所示: 在分类之后,我希望它看

  • 问题内容: 是否有更好的方法来计数Java8中的int出现次数 问题答案: 尝试:

  • 问题内容: 我正在使用哈希函数,该函数返回一个。 然后,我想将其存储在仅支持(带符号的64位)的PostgreSQL中。 因为我对数字本身不感兴趣,但对二进制值(因为我将其用作检测唯一性的ID(我的值集为〜1000个值,一个64位的哈希值对我来说足够了)),我想通过“只是”更改类型将其转换为。 如何以一种使编译器满意的方式做到这一点? 问题答案: 您可以简单地使用类型转换: 输出: 转换为始终成功

  • 问题内容: 在64位计算机上,Java中的int大小是32位还是64位? 问题答案: 32位。这是Java语言的功能之一,整数的大小不会随基础计算机而变化。请参阅规范的相关部分。

  • 这样我就能得到 我意识到我最初并没有指定这一点,但是是否可以在保留类型注释的同时做到这一点呢?到目前为止,最重要的答案是使用一个装饰器--但是,它并不保留返回类型

  • 嗯,我可以通过逻辑做到这一点,但我打赌有一个数学运算或表达式来做到这一点。一个存在吗?如果是,是什么? 以下是算法: 长位置=位位置/64 接下来是:当2的次方时,如何将除法转换为按位移位?