javascript - 在 JavaScript 中将数字转换为特定大小的整数(复制 Solidity 功能)
问题描述
我正在尝试在 JS/web3.js 中复制以下 Solidity 视图函数
function addPhase(
uint16 _phase,
uint64 _originalId
)
public
view
returns (uint80)
{
return uint80(uint256(_phase) << 64 | _originalId);
}
我知道<<和| 位运算符直接转换为 JavaScript,但我似乎无法通过转换为整数部分得到正确的结果,似乎 JavaScript 并不容易支持这一点。
例如,在solidity 函数中传入参数(1,5132)给出18446744073709556748的结果
如何在 Javascript 中复制这个公式?这是我的起点(没有给出正确的回应)
console.log(1 << 64 | 5132)
解决方案
推荐阅读
- javascript - 我想写一个可以生成随机地址的脚本
- iphone - 可以在浏览器中访问原深感摄像头吗?
- vue-router - 如何仅更改当前路由 vue-router 中的特定查询参数?
- nginx - Nginx 反向代理和延迟
- network-interface - C++ 理解 boost asio 多播接收器
- excel - VBA 用户窗体应该使用哪种显示模式来显示数据、控制它并确认它没问题?
- python - Pandas - 在数据框中创建滚动百分比
- javascript - 为什么一个图像交换会影响另一个图像?
- python - 使用来自 PyMongo 游标/迭代器的数据加载 Pandas DataFrame 太慢
- django - 我正在尝试在我的 Django 模板上输出过滤列表