Дали вот такое упражнение: Объяви переменные и присвой им цифровые значения в различных системах счисления: * переменную myHex с шестнадцатеричным значением, эквивалентным 400 в десятичной системе
-
https://ru.stackoverflow.com/a/453060/178988 – Qwertiy Apr 06 '20 at 21:53
2 Answers
Объявить переменную в 16 системе счисления возможно вот так:
let myHex = 0x190 // 400 в A-тичной
console.log(myHex)
- 617
Есть способ напрямую представить число в 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 для шестнадцатеричных. Ведь надо же как то сначала вычислить значение нужного числа в этих форматах))
- 5,797