当前位置:网站首页>二进制加法
二进制加法
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 需把相应位转化为数字类型,然后进行相加,最后结果需要反序
边栏推荐
- Unix Environment Programming Chapter 15 15.7 Message Queuing
- 1006 Sign In and Sign Out (25分)
- ThreadLocal及其内存泄露分析
- Oracle数据库常用函数总结
- 15.8 the semaphore Unix environment programming chapter 15
- Mysql多表查询
- sublime记录
- Qt获取EXE可执行文件的上一级目录下的文件
- torch.stack()的官方解释,详解以及例子
- golang runtime Caller、Callers、CallersFrames、FuncForPC、Stack作用
猜你喜欢
随机推荐
从位图到布隆过滤器
jmeter BeanShell 后置处理器
Since I use the HiFlow scene connector, I don't have to worry about becoming a "dropper" anymore
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
golang 三种指针类型具体类型的指针、unsafe.Pointer、uintptr作用
WebSocket
caffe ---make all编辑出错
Tensorflow realize parameter adjustment of linear equations
shap库源码和代码实现
备战金三银四:如何成功拿到阿里offer(经历+面试题+如何准备)
faster-rcnn learn
faster-rcnn学习
在线编译matlab,亲测好用
聚类了解
激光条纹中心提取——Steger
C语言统计不同单词数
如何在gazebo进行 joint的转动控制
matlab fcnchk 函数用法
Create a table in a MySQL database through Doc
tensorflow和numpy对应的版本,报FutureWarning: Passing (type, 1) or ‘1type‘ as a synonym of type is deprecate









