我如何在 javascript 中随机生成一个二进制数?

how do i randomly generate a binary number in javascript?

我正在制作一个简单的程序,我在其中进行数字系统转换测验,但我不知道如何在 Javascript 中生成二进制数。

用户选择 he/she 喜欢的转换类型。 (例如:二进制到十进制,十进制到十六进制等) 它还询问用户想要多少问题,并在单击“进行测验”按钮后继续生成问题。

这是我的程序的样子: image

它仍然是一个非常粗略的草稿,所以看起来非常不错哈哈

此函数将return输出介于指定为输入参数的最小和最大数字之间的随机二进制数。

function randomBinary(min, max) {
  return Math.floor(min + Math.random() * (max + 1 - min)).toString(2);
}


// test examples

console.log(randomBinary(0,200000));
console.log(randomBinary(100,500));
console.log(randomBinary(0,300000));

您可以使用 parseInt 函数并传递一个基数:

parseInt('101010', 2);   // 42
parseInt('101010', 16);  //1052688
parseInt('101010', 10);  // 101010

要将任何数字转换为不同的基数,您可以使用 toString(radix)

(42).toString(2);       // '101010'
(1052688).toString(16); // '101010'
(101010).toString(10);  // '101010'

如果输入来自字段,请确保在使用 .toString(radix)

之前通过 parseInt 将其值转换为数字

您可以使用前缀为“0b”的二进制计算。你的二进制是字符串,但如果你想要十进制值,你只需使用 Number(binary) 类型转换。

function randomDigit() {
  return Math.floor(Math.random() * Math.floor(2));
}

function generateRandomBinary(binaryLength) {
  let binary = "0b";
  for(let i = 0; i < binaryLength; ++i) {
    binary += randomDigit();
  }
  return binary;
}

const b = generateRandomBinary(6);
console.log(b); // random binary number as a string ex: 0b101100
console.log(Number(b)); // decimal value of this random binary number ex: 44

您也可以使用前缀“0x”代替十六进制的“0b”。