java写的二进制计算器
Posted 小白yuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java写的二进制计算器相关的知识,希望对你有一定的参考价值。
思路:
第一步:设置两个字符串来接受用户输入的一串二进制数
第二步:按照二进制的计算从右向左,通过遍历两个字符串中的字符取出每一个二进制的一位进行相加还有上一步的进位,设置一个进位标志,开始没有进位设为0,发生进位设为1
第三步:最后判断此时进位是否发生,如果发生就再追加进位在最前面
`/**
- FileName: Binary_Dome67_Test03
- Author: 86186
- Date: 2022/3/12 9:06
- Description: Binary_Dome67_Test03
- History:
- 作者姓名 修改时间 版本号 描述
*/
package com.cq.Dome;
/**
-
〈一句话功能简述〉
-
〈Binary_Dome67_Test03〉
-
@author Hacker
-
@create 2022/3/12
-
@since 1.0.0
*/
import java.util.Scanner;
public class Binary_Dome67_Test03
public static void main(String[] args)
Scanner input = new Scanner(System.in);
while(true)
System.out.println("=<<二进制计算器>>=");
System.out.println("1,计算两个二进制");
System.out.println("2,退出该程序");
System.out.print("请输入你的选择:");
int choice = input.nextInt();
if(choice == 1)
String s1 = "";
String s2 = "";
System.out.print("请输入第一个二进制数:");
s1 = input.next();
System.out.print("请输入第二个二进制数:");
s2 = input.next();
StringBuffer st = new StringBuffer();
int s1Index = s1.length() - 1;
int s2Index = s2.length() - 1;
int s1Position;
int s2Position;
int andAdd = 0;
int sign = 0;//表示是否进位
int i =0;
for(i = 0;i <= Math.max(s1.length() - 1,s2.length() - 1);i ++,s1Index --,s2Index --)
if(s1Index >= 0)
s1Position = s1.charAt(s1Index) - \'0\';
else
s1Position = 0;
if(s2Index >= 0)
s2Position = s2.charAt(s2Index) - \'0\';
else
s2Position = 0;
andAdd = s1Position + s2Position + sign;
if(andAdd >= 2)//满足这个if条件说明这三个数相加发生了进位
sign = 1;
st.append(andAdd % 2);//因为这是二进制最大为1,所以对2取余else sign = 0; st.append(andAdd); if(sign > 0) st.append(sign); System.out.println("二进制:" + s1 + " + " + s2 + " = " + st.reverse().toString()); else System.out.println("退出该系统,欢迎下次使用"); break;
以上是关于java写的二进制计算器的主要内容,如果未能解决你的问题,请参考以下文章