写一个任意进制转换的程序

news/2024/12/1 9:58:54/文章来源:https://www.cnblogs.com/ai888/p/18579553
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>任意进制转换</title><style>body {font-family: sans-serif;}label {display: block;margin-bottom: 5px;}input[type="text"] {width: 200px;padding: 5px;margin-bottom: 10px;}select {padding: 5px;margin-bottom: 10px;}button {padding: 8px 15px;background-color: #4CAF50;color: white;border: none;cursor: pointer;}#result {margin-top: 10px;font-weight: bold;}</style>
</head>
<body><h1>任意进制转换</h1><label for="inputNumber">输入数字:</label><input type="text" id="inputNumber"><label for="inputBase">输入进制 (2-36):</label><input type="number" id="inputBase" min="2" max="36" value="10"><label for="outputBase">输出进制 (2-36):</label><input type="number" id="outputBase" min="2" max="36" value="2"><button onclick="convert()">转换</button><div id="result"></div><script>function convert() {const inputNumber = document.getElementById("inputNumber").value;const inputBase = parseInt(document.getElementById("inputBase").value);const outputBase = parseInt(document.getElementById("outputBase").value);let result;try {// 将输入数字转换为十进制const decimalValue = parseInt(inputNumber, inputBase);// 检查是否转换成功if (isNaN(decimalValue)) {throw new Error("输入无效,请检查数字和进制是否匹配。");}// 将十进制值转换为目标进制result = decimalValue.toString(outputBase);} catch (error) {result = "错误: " + error.message;}document.getElementById("result").textContent = "结果: " + result;}</script></body>
</html>

改进说明:

  • 错误处理: 增加了 try...catch 块来处理无效输入(例如,在二进制输入中使用字母)和进制范围之外的输入。 提供更友好的错误信息。
  • 输入验证: 使用 parseInt 并将进制限制在 2 到 36 之间,确保输入有效。
  • 用户体验:
    • 添加了标签,使表单更易于理解。
    • 使用 minmax 属性限制了进制输入框的范围,并设置了默认值。
    • 使用 CSS 进行了简单的样式化,使界面更美观。
  • 清晰的输出: 将结果清晰地标记为“结果:”。

使用方法:

  1. 将代码保存为 HTML 文件 (例如,converter.html)。
  2. 在浏览器中打开该文件。
  3. 在“输入数字”字段中输入要转换的数字。
  4. 在“输入进制”字段中输入数字当前的进制 (2-36)。
  5. 在“输出进制”字段中输入要转换的目标进制 (2-36)。
  6. 点击“转换”按钮。
  7. 结果将显示在下方。

示例:

  • 将二进制数 101101 转换为十进制: 输入数字: 101101,输入进制: 2,输出进制: 10,结果: 45
  • 将十进制数 255 转换为十六进制: 输入数字: 255,输入进制: 10,输出进制: 16,结果: ff
  • 将十六进制数 1A 转换为八进制: 输入数字: 1A,输入进制: `

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/844456.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024-2025-1 20241322 《计算机基础与程序设计》第十周学习总结

2024-2025-1 20241322 《计算机基础与程序设计》第十周学习总结 作业信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK10这个作业的目标 ①信息系统②数据库与SQL③人工…

# 学期2024-2025-1 学号20241428《计算机基础与程序设计》第10周学习总结

学期(如2024-2025-1) 学号(如:20241300) 《计算机基础与程序设计》第X周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个…

2024-2025-1 20241425 《计算机基础与程序设计》第10周学习总结

2024-2025-1 20241425 《计算机基础与程序设计》第10周学习总结 作业信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK10这个作业的目标 信息系统、数据库与SQL、人工…

【人人都能学得会的NLP - 文本分类篇 04】层次化多标签文本分类如何做?

【人人都能学得会的NLP - 文本分类篇 04】层次化多标签文本分类如何做? NLP Github【人人都能学得会的NLP - 文本分类篇 04】层次化多标签文本分类如何做?NLP Github 项目:NLP 项目实践:fasterai/nlp-project-practice 介绍:该仓库围绕着 NLP 任务模型的设计、训练、优化、…

举例说明html5怎么判断网络状态?

HTML5 提供了 navigator.onLine API 来判断网络状态。它是一个布尔值属性,当浏览器在线时返回 true,离线时返回 false。 然而,它有一些局限性,仅仅检测浏览器是否连接到网络,并不一定意味着网络连接有效或可以访问互联网。例如,连接到本地网络但无法访问互联网时,它仍然…

# 学期2024-2025-1 学号20241405《计算机基础与程序设计》第10周学习总结

作业信息 |这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP| |这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK10| |这个作业的目标|1、信息系统 2、数据库与SQL 3、人工智能与专家系统 4、人工神经网络 5、模拟与离散事…

2024年11月总结及随笔之献血和球赛安检

随笔及总结1. 回头看 日更坚持了700天。读《数据工程之道:设计和构建健壮的数据系统》更新完成 读《数据质量管理:数据可靠性与数据质量问题解决之道》开更并持续更新2023年至2024年11月底累计码字1738120字,累计日均码字2483字。 2024年11月码字95323字,同比上升38.38%,环…

电脑和网络联网故障检测排查流程-2024-12-01

电脑和网络联网故障检测排查流程-2024-12-01 https://www.autoahk.com/archives/51704https://www.cnblogs.com/delphixx/p/18579399电脑和网络联网故障检测排查流程序号 故障现象 电脑和网络联网故障排查修复操作 备注1 电脑重新启动后无法全自动清理病毒木马垃圾文件并全自动…

使用canvas生成一张分享图

// 创建canvas元素 const canvas = document.createElement(canvas); canvas.width = 600; // 设置宽度 canvas.height = 400; // 设置高度 document.body.appendChild(canvas); // 将canvas添加到页面const ctx = canvas.getContext(2d);// 绘制背景 ctx.fillStyle = #f0f0f0;…

安卓的公式编辑器MathMagic

物体运动轨迹方程(考虑空气阻力)

UniDepth:通用单目度量深度估计

UniDepth:通用单目度量深度估计精确的单目度量深度估计(MMDE)对于解决3D感知和建模中的下游任务至关重要。然而,最近MMDE方法的显著准确性与其训练领域不符。即使存在适度的域间隙,这些方法也无法推广到看不见的域,这阻碍了它们的实际应用。提出了一种新的模型UniDepth,…

写一句话:NOIP之后,没有完结的故事与青春

睡觉睡觉,一切都好。睡觉最好。可能是两句话? 周五和助教一起吃饭,她说:不要老是说自己退役了。以后还有各种比赛,上了大学还有 acm。路还很长。 这两天和宁老师一起行动,宁老师真的是很可爱的很好的老师(如果 N 老师您看到了,那我想说的是老师特别幽默有趣,谢谢老师^…