Системы счисления
Преобразование представления числа в заданную систему счисления. В первом текстовом поле вводится целое десятичное число. При нажатии одной из кнопок: "Hex", "Oct" или "Bin" число переводится соответственно в шестнадцатеричное, восьмеричное или двоичное представление и результат выводится во втором текстовом поле. Если введенный операнд не является целым десятичным числом, во втором текстовом поле выводится сообщение "Ошибка".
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<script>
window.onload = function() {
document.MMM = document.getElementsByName('MMM')[0];
document.MMM2 = document.getElementsByName('MMM')[1]
}
Number.prototype.sys = String.prototype.sys = function(s) {
var x = Number(this);
if (!x) return 'Ошибка'
x = x.toString(s);
return x;
}
</script>
</head><body>
<input type="text" name="MMM"><br>
<input type="button" value="hex" onclick="document.MMM2.value = document.MMM.value.sys(16)"><input type="button" value="oct" onclick="document.MMM2.value = document.MMM.value.sys(8)"><input type="button" value="bin" onclick="document.MMM2.value = document.MMM.value.sys(2)">
<input type="text" name="MMM">
</body></html>
|
Огромное спасибо!
|
Раед, попробуйте конвертировать 0 (нуль) :-/
|
Раед,
Представьте что за каждое бессмысленное, ненужное и неуместное изменение стандартных прототипов, а равно любых не своих прототипов отрубали бы по одной руке. У меня для вас плохие новости. |
Agness, лучше так:
<html>
<head>
<script>
function convert(n) {
var inp= document.getElementById("in");
var out= document.getElementById("out");
if (isNaN(parseFloat(inp.value))) {
out.value= "Введите число"
} else {
out.value= parseFloat(inp.value).toString(n)
}
}
</script>
</head>
<body>
<input id="in" />
<input id="out" readonly /><br />
<button onclick="convert(2)">Bin</button><br />
<button onclick="convert(8)">Oct</button><br />
<button onclick="convert(16)">Hex</button><br />
</body>
</html>
|
Цитата:
|
Раед, расширение стандартных свойств должно быть оправданно. А в вашем решении оправданностью и не пахнет. Изменять прототипы нужно ну крайне аккуратно - минус утечки памяти, неизвестные ошибки и прочие радости. Чем локальнее работает каждый кусок программы - тем устойчивее система в целом.
|
Цитата:
Ещё вопрос: чем isNaN(num) отличается от num===NaN и что лучше юзать? |
Цитата:
|
| Часовой пояс GMT +3, время: 04:53. |