javascript - 如何使用 XS+3 转换为二进制?
问题描述
我在我的网页上遇到了一个问题,我正在尝试使用 2^n-1 系统转换为二进制文件,但无法找到解决方案。我一直很好地使用 8、16 和 32 位,但是当我尝试转换长(64 位)时,它就不起作用了。任何帮助都会很棒!
我在 HTML 网页上使用 Jquery。我不知道是否允许发布链接,但如果没有问题,我会在评论中链接它。我的 Jquery 代码是这样的:
$(document).ready(function(){
$("#boton").click(function(){
var var1 = bigInt($("#numero").val());
var var3 = bigInt($("input[name='bit']:checked").val());
var var3 = var3 - 1;
var var4 = bigInt(2).pow(var3);
var var5 = var1 + var4;
if (var5!=0){
var var2 = bigInt(var5).toString(2);
$("#final").text("El numero es " + var2.match(/.{4}/g));
$("#final").show();
} else {
$("#final").text("El numero es 0");
$("#final").show();
};
});
});
例如,如果我尝试将数字 37 转换为 8 位,那么它将是 37+(2^8-1=128)=165 并且必须将 165 转换为二进制,显示 10100101。当我尝试将 37 转换为64 位,然后它只显示 1 后跟大量的零
解决方案
您将需要使用bigint 库公开的方法:
var var1 = bigInt($("#numero").val());
var var3 = bigInt($("input[name='bit']:checked").val());
var3 = var3.subtract(1);
// ^^^^^^^^^
var var4 = bigInt(2).pow(var3);
var var5 = var1.add(var4);
// ^^^^
if (var5.notEquals(0)) {
// ^^^^^^^^^^
var var2 = var5.toString(2);
$("#final").text("El numero es " + var2.match(/.{4}/g));
} else {
$("#final").text("El numero es 0");
}
$("#final").show();
推荐阅读
- perl - Perl - 在 cp1251 中复制到剪贴板
- mysql - MySql InnoDB 表更新单行需要 1+ 秒
- c# - 如果是另一个具有相同名称的表单打开 C#,则关闭表单
- python - 在这种情况下,我需要树数据类型吗?[井字游戏]
- node.js - curl 中的“troute=t1”cookie 设置是什么?以及如何在 NodeJS 中模拟它
- node.js - 是否可以将 Firestore 查询表示为字符串
- windows - 在 cmake 中获取 Windows 可执行文件的运行时依赖项并安装它们
- google-sheets - 如何修改 Google 表格中重复条目的值
- javascript - 如何保护 API 端点?
- elasticsearch - elastic apm,关闭ssl验证