TOGOUTECH

javascript - "Simulate"JavaScript 中的 32 位整数溢出

coder 2024-05-16 原文

JavaScript 可以很好地处理以下数学运算:

var result = (20000000 * 48271) % 0x7FFFFFFF;

但在某些编程语言中,第一个 int*int 乘法会导致值太大而无法用标准的 32 位整数保存。有什么方法可以在 JavaScript 中“模拟”这个,看看如果乘法导致整数溢出,计算结果会是什么?

最佳答案

可以通过“滥用”JavaScript 中可用的按位运算符来模拟 32 位整数(因为它们只能返回该范围内的整数)。

转换为带符号的 32 位整数:

x = (a * b) | 0;

转换为无符号 32 位整数:

x = (a * b) >>> 0;

关于javascript - "Simulate"JavaScript 中的 32 位整数溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23577810/

有关javascript - "Simulate"JavaScript 中的 32 位整数溢出的更多相关文章

  1. javascript - 是否存在免费的通用 ASN.1 解码/转储/检查程序? - 2

    是否存在免费的通用ASN.1解码/转储/检查程序?我有一个可疑的ASN.1block,它可能解密失败,我想检查它以查看它是否有效,如果有效,它包含哪些元素。 最佳答案 我还使用了dumpasn1并取得了好几年的成功),然后我决定在屏幕上查看200行长的嵌套标签有点难以理解并且想要更动态的东西,所以我可以折叠树的一部分以及类似的东西。这就是我试图用我自己的asn1js创造的东西客户端javascriptASN.1解码器。它也是开源的,并使用dumpasn1巨大的“已知OID”配置文件。不尝试检测所有ASN.1格式错误,仅检测无法解码的

  2. javascript - 是否可以使用 JavaScript 从 Flash applet 拖放至外部? - 2

    假设我想要一个包含Flash小程序的网页,并且我想将一些对象拖放到网页的其余部分或拖放到该网页的其余部分,这完全可能吗?如果您知道某个网站可以做到这一点,那就加分了! 最佳答案 这个让我很感兴趣。我知道jessegavin在我去解决这个问题时发布了一些代码,但是这个代码已经过测试。我有一个super简单的工作示例,可让您在Flash之间拖动。很乱,因为我在午休时间把它放在一起。这是demo还有source基类直接取自ExternalInterfaceLiveDocs.我添加了MyButton以便按钮可以有一些文本。大多数javasc

  3. javascript - JS ES6 中 ()=> 和 _=> 和 (_)=> 的区别 - 2

    这个问题在这里已经有了答案:ESCMAScript6arrowfunctions-parenthesesaroundparameter(1个回答)Using_(underscore)variablewitharrowfunctionsinES6/Typescript(4个答案)关闭去年。我注意到,当我想编写一个粗箭头函数“=>”时,我可以执行_=>、()=>或者(_)=>和我的代码功能相同(至少对于我的用例而言)它们之间有实际区别吗?如果是,我应该使用哪一个?我一直在使用()=>的时间,但后来有一天我看到某人使用_=>的代码,我觉得它看起来很酷,所以我也开始使用它。我看到这篇中篇文章h

  4. javascript - 我尝试比较具有多个字符的拆分字符串 - 2

    varinput='HISFANTOR';varoutput=[];varchar=input.split('');for(vari=0,len=char.length;i<len;i++){if(char[i]=='H'||'K'||'Y'||'V'||'B'||'C'||'N'||'O'||'F'||'P'||'S'||'I'||'U'){

  5. javascript - react Hook : dispatch action from useEffect - 2

    我的文件夹结构:|--App|--Components|--PageA.js|--PageB.js|--PageC.js|--common-effects|--useFetching.js我正在重构我的代码以使用Reacthooks从API获取数据.我想从useFetching.js中的useEffect发送一个被saga中间件拦截的Action。仅当组件(PageA、PageB、PageC)挂载时才应分派(dispatch)此操作。我正在使用redux、react-redux和redux-saga。PageA.js:function(props){useFetching(action

  6. javascript - 为什么两个不同的键在一个对象中相互覆盖? - 2

    我分配了以下三个变量:consta={key:true}constb={key:false}constc={[a]:'1',[b]:'2'}然后当我尝试将以下内容记录到控制台时:console.log(c[a],c[b])我得到了以下信息:22当我认为我应该得到:12为什么我错了,我该如何解决? 最佳答案 对象只能有字符串(或符号)作为它们的键。如果您尝试使用非字符串,它会被转换为字符串。所以当你设置c[a]为1时,a是一个对象,这意味着它需要被转换成一个字符串。所以你最终将c["[objectObj

  7. javascript - 如何将 math.max 缩减为对象数组 - 2

    我有一个对象数组。我想从数组的数字属性中获取最大值:[{number:1000,name:"Josh"},{number:2000,name:"Joker"},{number:3000,name:"Batman"}]我正在使用此解决方案,但我一直收到NAN:constmax=arr.reduce((a,b)=>Math.max(a.number,b.number));我的目标是获取最大值,然后将其存储在变量中constx={number:3000,name:"Batman"}我如何通过reduce实现它?它似乎只适用

  8. javascript - 使用函数式编程复制数组的元素 - 2

    我正在尝试复制数组中的每个元素,但使用的是函数式样式。我目前有这个:["a","b","c"]我得到这个:["a","a","b","b","c","c"]到目前为止,我已经尝试了以下方法,将每个元素映射到一个数组,然后使用flat()获取一维数组。有没有更干净的方法,因为感觉我在滥用map和flat。["a","b","c"].map(item=>[item,item]).flat();有

  9. javascript - 如何在 React 中使用钩子(Hook)绑定(bind)函数? - 2

    基本上我们在构造函数中绑定(bind)事件处理函数,或者像下面这样在React类组件中将它们作为箭头函数classTestextendsComponent{constructor(props){super(props);this.state={count:0};this.setCount=this.setCount.bind(this);}setCount(){this.setState({count:this.state.count+1});}render(){return<buttononClick={this.setCount}>Increase</button

  10. javascript - 无法使用 webpack 缩小 css 代码 - 2

    网络包版本:4.16.3全部编译成功。我在bundle.css中编译后的代码不是minify。我尝试在text-webpack-plugin中使用minimize:true,但它不起作用。对于编译,我在命令行中使用命令:webpack在我的工作目录中我做错了什么?我的wepback配置:'usestrict'constwebpack=require("webpack");constExtractTextPlugin=require('extract-text-webpack-plugin')module.exports={context:

随机推荐

  1. javascript - 是否存在免费的通用 ASN.1 解码/转储/检查程序? - 2

    是否存在免费的通用ASN.1解码/转储/检查程序?我有一个可疑的ASN.1block,它可能解密失败,我想检查它以查看它是否有效,如果有效,它包含哪些元素。 最佳答案 我还使用了dumpasn1并取得了好几年的成功),然后我决定在屏幕上查看200行长的嵌套标签有点难以理解并且想要更动态的东西,所以我可以折叠树的一部分以及类似的东西。这就是我试图用我自己的asn1js创造的东西客户端javascriptASN.1解码器。它也是开源的,并使用dumpasn1巨大的“已知OID”配置文件。不尝试检测所有ASN.1格式错误,仅检测无法解码的

  2. javascript - 是否可以使用 JavaScript 从 Flash applet 拖放至外部? - 2

    假设我想要一个包含Flash小程序的网页,并且我想将一些对象拖放到网页的其余部分或拖放到该网页的其余部分,这完全可能吗?如果您知道某个网站可以做到这一点,那就加分了! 最佳答案 这个让我很感兴趣。我知道jessegavin在我去解决这个问题时发布了一些代码,但是这个代码已经过测试。我有一个super简单的工作示例,可让您在Flash之间拖动。很乱,因为我在午休时间把它放在一起。这是demo还有source基类直接取自ExternalInterfaceLiveDocs.我添加了MyButton以便按钮可以有一些文本。大多数javasc

  3. javascript - JS ES6 中 ()=> 和 _=> 和 (_)=> 的区别 - 2

    这个问题在这里已经有了答案:ESCMAScript6arrowfunctions-parenthesesaroundparameter(1个回答)Using_(underscore)variablewitharrowfunctionsinES6/Typescript(4个答案)关闭去年。我注意到,当我想编写一个粗箭头函数“=>”时,我可以执行_=>、()=>或者(_)=>和我的代码功能相同(至少对于我的用例而言)它们之间有实际区别吗?如果是,我应该使用哪一个?我一直在使用()=>的时间,但后来有一天我看到某人使用_=>的代码,我觉得它看起来很酷,所以我也开始使用它。我看到这篇中篇文章h

  4. javascript - 我尝试比较具有多个字符的拆分字符串 - 2

    varinput='HISFANTOR';varoutput=[];varchar=input.split('');for(vari=0,len=char.length;i<len;i++){if(char[i]=='H'||'K'||'Y'||'V'||'B'||'C'||'N'||'O'||'F'||'P'||'S'||'I'||'U'){

  5. javascript - react Hook : dispatch action from useEffect - 2

    我的文件夹结构:|--App|--Components|--PageA.js|--PageB.js|--PageC.js|--common-effects|--useFetching.js我正在重构我的代码以使用Reacthooks从API获取数据.我想从useFetching.js中的useEffect发送一个被saga中间件拦截的Action。仅当组件(PageA、PageB、PageC)挂载时才应分派(dispatch)此操作。我正在使用redux、react-redux和redux-saga。PageA.js:function(props){useFetching(action

  6. javascript - 为什么两个不同的键在一个对象中相互覆盖? - 2

    我分配了以下三个变量:consta={key:true}constb={key:false}constc={[a]:'1',[b]:'2'}然后当我尝试将以下内容记录到控制台时:console.log(c[a],c[b])我得到了以下信息:22当我认为我应该得到:12为什么我错了,我该如何解决? 最佳答案 对象只能有字符串(或符号)作为它们的键。如果您尝试使用非字符串,它会被转换为字符串。所以当你设置c[a]为1时,a是一个对象,这意味着它需要被转换成一个字符串。所以你最终将c["[objectObj

  7. javascript - 如何将 math.max 缩减为对象数组 - 2

    我有一个对象数组。我想从数组的数字属性中获取最大值:[{number:1000,name:"Josh"},{number:2000,name:"Joker"},{number:3000,name:"Batman"}]我正在使用此解决方案,但我一直收到NAN:constmax=arr.reduce((a,b)=>Math.max(a.number,b.number));我的目标是获取最大值,然后将其存储在变量中constx={number:3000,name:"Batman"}我如何通过reduce实现它?它似乎只适用

  8. javascript - 使用函数式编程复制数组的元素 - 2

    我正在尝试复制数组中的每个元素,但使用的是函数式样式。我目前有这个:["a","b","c"]我得到这个:["a","a","b","b","c","c"]到目前为止,我已经尝试了以下方法,将每个元素映射到一个数组,然后使用flat()获取一维数组。有没有更干净的方法,因为感觉我在滥用map和flat。["a","b","c"].map(item=>[item,item]).flat();有

  9. javascript - 如何在 React 中使用钩子(Hook)绑定(bind)函数? - 2

    基本上我们在构造函数中绑定(bind)事件处理函数,或者像下面这样在React类组件中将它们作为箭头函数classTestextendsComponent{constructor(props){super(props);this.state={count:0};this.setCount=this.setCount.bind(this);}setCount(){this.setState({count:this.state.count+1});}render(){return<buttononClick={this.setCount}>Increase</button

  10. javascript - 无法使用 webpack 缩小 css 代码 - 2

    网络包版本:4.16.3全部编译成功。我在bundle.css中编译后的代码不是minify。我尝试在text-webpack-plugin中使用minimize:true,但它不起作用。对于编译,我在命令行中使用命令:webpack在我的工作目录中我做错了什么?我的wepback配置:'usestrict'constwebpack=require("webpack");constExtractTextPlugin=require('extract-text-webpack-plugin')module.exports={context: