0

Дали вот такое упражнение: Объяви переменные и присвой им цифровые значения в различных системах счисления: * переменную myHex с шестнадцатеричным значением, эквивалентным 400 в десятичной системе

2 Answers2

1

Объявить переменную в 16 системе счисления возможно вот так:

let myHex = 0x190 // 400 в A-тичной

console.log(myHex)
0

Есть способ напрямую представить число в JS для 16-ной, 8-ной и 2-ной (соответственно 0x..., 0o..., 0b...) системы счислений. Для получения строкового представления числа в других системах счислений можно использовать функцию Number.toString(2-36). Для обратного преобразования строк в число parseInt(строка, основание):

let int = 400;

console.log('0b110010000 : ' + 0b110010000); // 400 в 2-ой, то есть 0b... console.log('0o620 : ' + 0o620); // 400 в 8-ой, 0o... console.log('0x190 : ' + 0x190); // 400 в 16-ой, 0x...

let fromInt = { 2 : int.toString(2), 4 : int.toString(4), 8 : int.toString(8), 16 : int.toString(16), 32 : int.toString(32) }

for(let key in fromInt){ console.log(400 в ${key}-ой системе счислений: ${fromInt[key]}); fromInt[key] = parseInt(fromInt[key], key); // Преобразовываем строки в число }

console.log('Объект после преобразований:', fromInt); // Получаем везде 400

То есть для получения значения числа Num в n-ой системе счислений: Num.toString(n), дальше подставлять это значение после 0b для двоичных, 0o для восьмеричных и 0x для шестнадцатеричных. Ведь надо же как то сначала вычислить значение нужного числа в этих форматах))

Leonid
  • 5,797