Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2022, 21:08   #1
LevMark
Пользователь
 
Регистрация: 28.03.2021
Сообщений: 24
По умолчанию Реализация перевода чисел в 16 СС

В данная программа должна реализовать алгоритмы перевода числа из 10сс в 16сс. При вводе чисел меньше 16 всё верно, однако от 17 и дальше программа игнорирует целые числа. Я предполагаю, что это из-за того что строки не складываются(полученная после первого условия). Как можно исправить данную программу.
Код:
<html>
<head>
<meta charset="UTF-8">
<title>Перевод в СС</title>
</head>
<style>
#Input { position: fixed; margin-left: -500px; margin-top: 30px; }
#Button { margin-top: 100px; margin-left: 20px; height: 30px; }
</style>
<body>
<p><input type="text" id="vvod">
<p><input type = "button" id="but" onclick="change1()" value = "Перевод в 16 СС" >
<input type="text" id="vivod1"> 
<script type='text/javascript'>
function change1() 
{
var v = document.getElementById('vvod').value;
var k = document.getElementById('vivod1');
var p = "";
var r = 0;
var znak = " ";
var s= "p";
if(v<0)
{
znak="-";
v=Math.abs(v);
}
do{
r = v % 16;
if (r < 10)
{
p = String.fromCharCode('0'.charCodeAt(0) + r) + p;
}
else
{
p = String.fromCharCode('A'.charCodeAt(0) - 10 + r)+ p;
}
v = v / 16;
} while(v = 0);
k.value=znak+p;
}
</script>
</body>
</html>
LevMark вне форума Ответить с цитированием
Старый 08.05.2022, 00:12   #2
ir0nface
Новичок
Джуниор
 
Регистрация: 07.05.2022
Сообщений: 1
По умолчанию

Вот так работает:

Код:
function change1() {
    let input = +document.getElementById('vvod').value
    document.getElementById('vivod1').value = input.toString(16).toUpperCase()
}
Унарный плюс при присвоении значения переменной input преобразует в число значение поля.
Аргумент в методе toString указывает на систему счисления, в которой необходимо представить число.
Метод toUpperCase использован для красоты, чтобы в результате буквы заглавные были.

(В метод toString можно передать основания систем от 2 до 36, таким образом можно сделать своеобразный числовой "переводчик"
ir0nface вне форума Ответить с цитированием
Старый 08.05.2022, 13:57   #3
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Код:
<html>
<head>
<meta charset="UTF-8">
<title>Перевод в СС</title>
</head>
<style>
#Input { position: fixed; margin-left: -500px; margin-top: 30px; }
#Button { margin-top: 100px; margin-left: 20px; height: 30px; }
</style>
<body>
<p><input type="text" id="vvod">
<p><input type = "button" id="but" onclick="change1()" value = "Перевод в 16 СС" >
<input type="text" id="vivod1"> 
<script type='text/javascript'>
function change1() 
{
var v = document.getElementById('vvod').value;
var k = document.getElementById('vivod1');
var p = "";
var r = 0;
var znak = " ";
var s= "p";
if(v<0)
{
znak="-";
v=Math.abs(v);
}
do{
	r = v%16;
	if(r < 10)
		p = String.fromCharCode('0'.charCodeAt(0) + r) + p;
	else
		p = String.fromCharCode('A'.charCodeAt(0) - 10 + r) + p;

	v = Math.floor(v/16);
}
while(v);

k.value = znak + p;
}
</script>
</body>
</html>
Cuprum5 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для перевода чисел GorinichYa Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 12 06.06.2015 13:32
Программа перевода чисел. super3994 C# (си шарп) 6 20.04.2012 19:13
Программа перевода чисел super3994 Фриланс 2 20.04.2012 17:47
Алгоритм перевода чисел на языке Си. AlekCaHdpyLLlka Помощь студентам 7 31.03.2012 13:02
Требуется дописать программу перевода чисел 5->7 с.с mrIceMan Общие вопросы C/C++ 8 19.10.2011 22:25