当前位置:网站首页>二进制加法
二进制加法
2022-08-09 10:58:00 【拾荒大妈】
题目
给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。
输入为 非空 字符串且只包含数字 1 和 0。
代码
/**
* @param {string} a
* @param {string} b
* @return {string}
*/
var addBinary = function(a, b) {
var i = Math.max(a.length,b.length)
a = a.padStart(i,'0');//位数不同,左边填充"0"
b = b.padStart(i,'0');
var flag = 0;
var sum = "";
for(let j = i-1 ;j >= 0 || flag!=0;j--){
var misum;
if(j<0){
misum = flag;
flag = 0;
}
else{
misum = parseInt(a[j])+parseInt(b[j])+flag;
flag = 0 ;
}
if(misum >= 2){
flag = 1;
}
if(misum%2 == 1){
sum+="1";
}
else sum+="0";;
}
return sum.split("").reverse().join("");
};
注意
1. 传入的值的类型是字符,可能会出现字符长度不一样的情况,首先需要填充0使字符一致。
2. flag用于标志是否有进位,当相应位数值和flag相加,如果为1或者3,则填加“1”,,为0或者2,添加“0”
3 需把相应位转化为数字类型,然后进行相加,最后结果需要反序
边栏推荐
- shap库源码和代码实现
- 全网最简单解决OneNote中英字体不统一
- jvm-类加载系统
- 从位图到布隆过滤器
- Solve 1. tensorflow runs using CPU but not GPU 2. GPU version number in tensorflow environment 3. Correspondence between tensorflow and cuda and cudnn versions 4. Check cuda and cudnn versions
- FreeRTOS任务创建源码分析
- 性能测试(06)-逻辑控制器
- golang 标准库json Marshal、Unmarshal坑
- 关于anaconda中conda下载包或者pip下载包很慢的原因,加速下载包的方法(无视anaconda版本和环境)
- cesium加载地图
猜你喜欢
随机推荐
c语言函数的递归调用(汉诺塔问题,楼梯递归问题等)
faster-rcnn学习
日期工具类
vite的原理,手写vite
activemq 消息持久化
shap库源码和代码实现
arcgis制图之天地图符号样式配置
非科班毕业生,五面阿里:四轮技术面+HR一面已拿offer
[Original] Usage of @PrePersist and @PreUpdate in JPA
faster-rcnn中的RPN原理
多商户商城系统功能拆解26讲-平台端分销设置
使用pip成功安装某个库,但pycharm中找不到,此问题的解决方案
The complete grammar of CSDN's markdown editor
Invisible OOM in kubernetes
leetcode-搜索旋转排序数组-33
Shell script combat (2nd edition) / People's Posts and Telecommunications Press Script 2 Validate input: letters and numbers only
2022年台湾省矢量数据(点线面)及数字高程数据下载
WebSocket
1007 Maximum Subsequence Sum (25分)
程序员的专属浪漫——用3D Engine 5分钟实现烟花绽放效果