【前端demo】将二进制数转换为十进制数 原生实现

https://github.com/florinpop17/app-ideas

总结

文章目录

    • 效果
    • JavaScript实现进制转换
    • 原生代码
    • 遇到的问题

效果

  • 二进制转换为十进制
  • 若输入为空或不是二进制,提示
  • 清空

https://codepen.io/karshey/pen/dywXZYQ

在这里插入图片描述

JavaScript实现进制转换

  • parseInt
parseInt('111',2)
  • 手动实现

bin是输入的字符串。

function Bin2Dec(bin) {let dec = 0;for (let index = bin.length - 1; index >= 0; index--) {let num = bin.length - 1 - index;dec += Math.pow(2, num) * parseInt(bin[index]);}return dec;
}

原生代码

可以用一个在线运行网站运行一下,如:https://uutool.cn/html/

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>Binary to Decimal Converter</title><!-- 在这里写CSS --><style>.box {width: 400px;padding: 30px 20px;border: 1px solid #9e9e9e;border-radius: 10px;background-color: #baf0f0;}.input {margin-bottom: 20px;}.text {margin: 5px 0;}.button {height: 30px;}.put {width: 250px;height: 25px;background-color: #cfedf1;border: 1px solid #9e9e9e;border-radius: 7px;/* 输入的字离边距有10px */box-sizing: border-box;padding: 0 10px;}</style>
</head><body><h2>Binary to Decimal Converter</h2><div class="box"><div class="input box2"><div class="text">Binary Input</div><form action=""><input type="text" placeholder="Enter 0 or 1" id="input" class="put"><input type="button" value="Convert" onclick="clickConvert()" class="button"></input></form></div><div class="output box2"><div class="text">Binary Output</div><form action=""><input type="text" id="output" class="put"><input type="button" value="Clear" onclick="Clear()" class="button"></input></form></div></div>
</body></html><script>function clickConvert() {let bin = document.getElementById('input').value//判断输入是否为空if (bin === '') {alert('请输入二进制数')Clear()return}// 判断是否全0或1let flag = 0for (let i = 0; i < bin.length - 1; i++) {if (!(bin[i] === '0' || bin[i] === '1')) {flag = 1; break;}}if (flag) {alert('请输入二进制数')Clear()return}// 计算let dec = 0for (let index = bin.length - 1; index >= 0; index--) {let num = bin.length - 1 - indexdec += Math.pow(2, num) * parseInt(bin[index])}document.getElementById('output').value = String(dec)};function Clear() {document.getElementById('input').value = ''document.getElementById('output').value = ''// alert('已清除数据')}
</script>

遇到的问题

页面上有一个查询按钮为 Button 标签,点击查询按钮后会自动刷新页面,导致页面闪动且赋的值消失,查资料后发现是 button 的默认行为导致的。

button 标签按钮会提交表单,而input 标签 type 属性为 button 不会对表单进行任何操作。

解决方法:

<button>改为<input type='button'>

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

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

相关文章

虚拟交换缓存不足导致qt编译失败

qt pro make 失败&#xff1a; virtual memory exhausted: Cannot allocate memory Makefile:9155: recipe for target qrc_myimages.o failed make: *** [qrc_myimages.o] Error 1 make: *** Waiting for unfinished jobs....virtual memory exhausted: Cannot allocate memo…

数据仓库_维度表的两大分类

最近看一篇文章对维度表进行了分类&#xff0c;记录一下。 维度表主要分为两类高基数维度表和低基数维度表。 高基数维度数据 一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。 低基数维度数据 一般是配置表&#xff0c;比如枚举值对应的中文含…

2309C++连接宏

枚 哈哈型{啊啊,哈哈};整 哈哈啊(整 i){中 2*i; } #define 新啊(i) \整 新##i(i##型 k){ \整 ji##啊(k);中 j; \}新啊(哈哈);空 主(){整 k新哈哈(啊啊);打印(k); }

图神经网络教程之GAT(pyG)

图神经网络-pyG-GAT 在上一章节介绍了pyG-GCN的使用&#xff0c;除了GCN&#xff0c;还有一些像GAT、GraphSage等等一些&#xff0c;本文将介绍GAT模型的构建 实现了一个使用Graph Attention Network&#xff08;GAT&#xff09;的节点分类模型&#xff0c;该模型在Cora数据集上…

《Kali渗透基础》15. WEB 渗透

kali渗透 1&#xff1a;WEB 技术1.1&#xff1a;WEB 攻击面1.2&#xff1a;HTTP 协议基础1.3&#xff1a;AJAX1.4&#xff1a;WEB Service 2&#xff1a;扫描工具2.1&#xff1a;HTTrack2.2&#xff1a;Nikto2.3&#xff1a;Skipfish2.4&#xff1a;Arachni2.5&#xff1a;OWAS…

前端面试必备 | uni-app 篇(P1-15)

文章目录 1. 请简述一下uni-app的定义和特点。2. uni-app兼容哪些前端框架&#xff1f;请列举几个。3. 请简述一下uni-app的跨平台工作原理。4. 什么是条件编译&#xff1f;在uni-app中如何实现条件编译&#xff1f;5. uni-app中的页面生命周期有哪些&#xff1f;请简要介绍。6…

UG\NX CAM二次开发 插入工序 UF_OPER_create

文章作者:代工 来源网站:NX CAM二次开发专栏 简介: UG\NX CAM二次开发 插入工序 UF_OPER_create 效果: 代码: void MyClass::do_it() {tag_t setup_tag=NULL_TAG;UF_SETUP_ask_setup(&setup_tag);if (setup_tag==NULL_TAG){uc1601("请先初始化加工环境…

flinkcdc同步完全量数据就不同步增量数据了

flinkcdc同步完全量数据就不同步增量数据了 使用flinkcdc同步mysql数据&#xff0c;使用的是全量采集模型 startupOptions(StartupOptions.earliest()) 全量阶段同步完成之后&#xff0c;发现并不开始同步增量数据&#xff0c;原因有以下两个&#xff1a; 原因1&#xff1a; …

WPF数据视图

将集合绑定到ItemsControl控件时&#xff0c;会不加通告的在后台创建数据视图——位于数据源和绑定的控件之间。数据视图是进入数据源的窗口&#xff0c;可以跟踪当前项&#xff0c;并且支持各种功能&#xff0c;如排序、过滤、分组。 这些功能和数据对象本身是相互独立的&…

【计算机网络】OSI 七层网络参考模型

OSI&#xff08;Open Systems Interconnection&#xff09;七层网络参考模型是一种用于描述计算机网络通信的框架&#xff0c;将网络通信划分为七个不同的层次&#xff0c;每个层次负责不同的功能。 以下为 OSI 七层网络参考模型的简单表格&#xff1a; --------------------…

maven的依赖下载不下来的几种解决方法

前言 每次部署测试环境&#xff0c;从代码库拉取代码&#xff0c;都会出现缺少包的情况。然后找开发一通调试&#xff0c;到处拷包。 方案一&#xff1a;pom文件注释/取消注释 注释掉pom.xml里的报红色的依赖&#xff08;同时可以把本地maven库repo里对应的包删除&#xff09;&…

一款不能错过的Git客户端:Fork for Mac,让你的代码管理更便捷

Fork for Mac是一款强大的Git客户端&#xff0c;让用户在Mac电脑上更方便地进行版本控制和代码管理。它具有以下特点&#xff1a; 易用性&#xff1a;Fork for Mac界面简洁明了&#xff0c;操作简单易懂&#xff0c;让用户可以快速上手。功能强大&#xff1a;支持各种Git功能&…

Mac软件删除方法?如何删除不会有残留

Mac电脑如果有太多无用的应用程序&#xff0c;很有可能会拖垮Mac系统的运行速度。因此&#xff0c;卸载电脑中无用的软件是优化Mac系统运行速度的最佳方式之一。Mac卸载应用程序的方式是和Windows有很大的区别&#xff0c;特别对于Mac新用户来说&#xff0c;如何无残留的卸载删…

Java8异步类CompletableFuture详解

1、前言 学习java基础时候多线程使用我们首先学习的 Runable 、Future 、 Thread 、ExecutorService、Callable等相关类&#xff0c;在我们日常工作或者学习中有些场景并不满足我们需求&#xff0c;JDK8引入了一个新的类 CompletableFuture 来解决之前得问题&#xff0c; Comp…

【Latex】使用技能站:(三)使用 Vscode 配置 LaTeX

使用 Vscode 配置 LaTeX 引言1 安装texlive2 安装vscode2.1 插件安装2.2 配置 3 安装SumatraPdf3.1 vscode配置3.2 配置反向搜索 引言 安装texlive 安装vscode 安装SumatraPdf 1 安装texlive 在线LaTeX编辑器&#xff1a;https://www.overleaf.com TeX Live下载&#xff1a;h…

使用 v-for 指令和数组来实现在 Uni-app 中动态增减表单项并渲染多个数据

在 data 中定义一个数组&#xff0c;用于存储表单项的数据&#xff1a; data() {return {formItems: []} } 在模板中使用 v-for 指令渲染表单项&#xff1a; <template><div><div v-for"(item, index) in formItems" :key"index"><…

【LeetCode】《LeetCode 101》第十二章:字符串

文章目录 12.1 字符串比较242 . 有效的字母异位词&#xff08;简单&#xff09;205. 同构字符串&#xff08;简单&#xff09;647. 回文子串&#xff08;中等&#xff09;696 . 计数二进制子串&#xff08;简单&#xff09; 12.2 字符串理解224. 基本计算器&#xff08;困难&am…

mysql之存储引擎

目录 存储引擎概念 MyISAM MyISAM特点 MyISAM 表的存储格式 MyISAM适用的生产场景 InnoDB InnoDB特点 选择存储引擎依据 MyISAM 和 INNODB区别 命令 查看系统支持的存储引擎 查看表使用的存储引擎 修改存储引擎 存储引擎概念 MySQL中的数据用各种不同的技术存…

通过python 获取当前局域网内存在的IP和MAC

通过python 获取当前局域网内存在的ip 通过ipconfig /all 命令获取局域网所在的网段 通过arp -d *命令清空当前所有的arp映射表 循环遍历当前网段所有可能的ip与其ping一遍建立arp映射表 for /L %i IN (1,1,254) DO ping -w 1 -n 1 192.168.3.%i 通过arp -a命令读取缓存的映射表…

Java的23种设计模式

Java的23种设计模式 一、创建型设计模式1.单例模式 singleton1.1.静态属性单例模式1.2 静态属性变种1.3 基础的懒汉模式1.4 线程安全的懒加载单例1.5 线程安全的懒加载 单例-改进1.6 双重检查锁1.7 静态内部类1.8 枚举单例1.9 注册表单例 2.工厂方法模式 factory3.抽象工厂模式…