十进制转32位二进制(Java)

十进制转32位二进制(Java)

一、题目

输入一个正整数N,输出一个32位的二进制数(例如输入2,输出前面30个0+10)
如下图所示
在这里插入图片描述

二、代码实现

text3.java


package ch03;

import java.util.Scanner;
import ch03.SqStack;

public class Test3 {

	/**
	 * @author 春
	 * @num ……
	 * @text 2.输入一个正整数N,输出一个32位的二进制数(例如输入2,输出30个0+10)
	 */
	public static void main(String[] args) throws Exception {
	
		Scanner scan = new Scanner(System.in);
		System.out.print("输入十进制数为:");
		int Dec = scan.nextInt();
		SqStack test = new SqStack(32);
			test.bin(Dec);
		System.out.print("输出的二进制为:");
			test.display();

	}

}

SqStack.java

package ch03;

public class SqStack implements IStack {
	private Object[] stackElem;
	private int top;
	boolean b;

	public SqStack(int maxSize) {
		top = 0;
		stackElem = new Object[maxSize];
	}

	public void clear() {
		top = 0;
	}

	public boolean isEmpty() {
		return top == 0;
	}

	public int length() {
		return top;
	}

	public Object peek() {
		if (!isEmpty())
			return stackElem[top - 1];
		else
			return null;
	}

	public Object pop() {
		if (isEmpty())
			return null;
		else
			return stackElem[--top];
	}

	public void push(Object x) throws Exception {
		if (top == stackElem.length)
			throw new Exception("栈满");
		else
			stackElem[top++] = x;
	}

	
	public void display() {
		if(top < 32){
			for(int i=1; i<= 32-top; i++){
				System.out.print("0");
			}
		}
		for (int i = top - 1; i >= 0; i--)
			System.out.print(stackElem[i].toString() + "");
	}
	
	
	public void bin(int x){
		int n = 0;
		while(x > 0){
			n = x%2;
			try {
				push(n);
			} catch (Exception e) {
				e.printStackTrace();
			}
			x = x / 2;
		}
	}
		}

IStack.java

package ch03;

public interface IStack {
	public void clear();

	public boolean isEmpty();

	public int length();

	public Object peek();

	public void push(Object x) throws Exception;

	public Object pop();
}

三、测试结果

在这里插入图片描述

发布了40 篇原创文章 · 获赞 16 · 访问量 5270

猜你喜欢

转载自blog.csdn.net/CSDNWuZhiChun/article/details/103384923
今日推荐