Как преобразовать в двоичный файл, используя XS + 3? - PullRequest
2 голосов
/ 25 мая 2019

Я застрял с проблемой на моей веб-странице, я пытаюсь преобразовать в двоичный файл с использованием системы 2 ^ n-1 и не могу найти решение. Я хорошо работал с 8, 16 и 32 битами, но когда я пытаюсь преобразовать длинный (64 бит), это не работает. Любая помощь будет отличной!

Я использую Jquery на веб-странице HTML. Я не знаю, разрешено ли размещать ссылку, но если нет проблем, я добавлю ссылку в комментарии. Мой код 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, за которым следует большое количество нулей

1 Ответ

1 голос
/ 26 мая 2019

Вам нужно будет использовать методы , которые предоставляет ваша библиотека 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();
...