Add Binary
来源:互联网 发布:网络与新媒体专业介绍 编辑:程序博客网 时间:2024/06/06 03:29
https://leetcode.com/problems/add-binary/
Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.
计算过程类似Verilog的全加器。
char* addBinary(char* a, char* b) { int i; int l1, l2, l3, temp; l1 = strlen(a); l2 = strlen(b); l3 = l1 > l2 ? l1 + 2 : l2 + 2; temp = l3; char *result = (char *)malloc(l3 * sizeof(char)); int t1, t2; int sum, cout = 0; cout = 0; l1--; l2--; l3--; result[l3] = '\0'; while (l1 >= 0 || l2 >= 0) { t1 = l1 >= 0 ? a[l1] - '0' : 0; t2 = l2 >= 0 ? b[l2] - '0' : 0; sum = t1 ^ t2 ^ cout; cout = (t1 & t2) | (t1 & cout) | (t2 && cout); result[--l3] = sum + '0'; l1--; l2--; } if (cout == 1) result[--l3] = '1'; else { for(int i = 1; i < temp; i++) { result[i-1] = result[i]; // move left } } return result;}
0 0
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Add Binary
- Servlet多线程同步问题及其解决方法
- Ubuntu16.04 ionic(jdk,sdk,gradle)环境搭建完全攻略
- Java基本环境介绍
- php超时处理全面总结
- Redis和Memcached的区别?
- Add Binary
- 单链表的建立
- Android OkHttp完全解析
- 【SSH】——一条线看SSH框架
- SharedPreferences偏好设置工具类
- Ubuntu16.04下安装tensorflow并配置GPU
- 设计模式(14)-享元模式
- 写一个controller调job
- Qt编程之串口通信