各位高手请进,请教编程问题

sun89 2007-09-16 04:13:24
我是初学者 菜鸟一只

帮忙解决一下

编写一个程序,把十进制数转换成二进制数。
...全文
206 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sun89 2007-09-18
  • 打赏
  • 举报
回复
楼上的程序有问题啊
请各位DEBUG一下啊
还有要能做小数和负数啊
capturesource 2007-09-17
  • 打赏
  • 举报
回复
System.out.println(Integer.toBinaryString(10));
shan1119 2007-09-16
  • 打赏
  • 举报
回复
System.out.println(Integer.toBinaryString(10));
qybao 2007-09-16
  • 打赏
  • 举报
回复
如果有浮点数,可以用Double.toBinaryString(double d);
把上面的n改成double类型,Integer.paseInt改成Double.paseDouble;

仅供参考
qybao 2007-09-16
  • 打赏
  • 举报
回复
why no use toBinaryString?

public class ToBinary {
public static void main(String[] args) {
try {
String s;
int n = 0;
while (true) {
BufferedReader br = new BufferedReader(System.in);
System.out.print("input a decimal/or [E] to exit:");
s = br.readLine();
if (s!=null && "E".equals(s)) {
System.out.println("bye...");
break;
}
try {
n = Integer.paseInt(s);
} catch (NumberFormatException ex) {
System.out.println(s " is an illegal decimal, try again.");
continue;
}

System.out.println(Integer.toBinaryString(n));
}
} catch (Throwable e) {
e.printStackTrace();
}
}

}
tanlingyun 2007-09-16
  • 打赏
  • 举报
回复
楼上的写的好多啊,看我这个可能简单点:
import java.util.*;
public class TenToTwo
{
static StringBuffer result = new StringBuffer();
public static void main(String[] args)
{
int m;
System.out.print("输入一个十进制数:");
Scanner s = new Scanner(System.in);
m = s.nextInt();
transfer(m);
result.reverse();
System.out.println(result);
}

public static void transfer(int m)
{
if(m == 0)
return;
else if(m % 2 == 1)
result.append('1');
else
result.append('0');
m = m / 2;
transfer(m);
}

}
zephyr_cc 2007-09-16
  • 打赏
  • 举报
回复
这个....数存机器里本身就是二进制的
如果你是想把这个二进制打印出来,方法如下:

/**
* Display the binary form of primitive byte
* Every four-bit has a ','
*/
public static void bin(byte b) {
char[] charBits = toCharBits(b, 8);
outputWholeBits(charBits);
}

/**
* Display the binary form of primitive char
* primitive char is Unicode and takes 16-bit pre-char
* Every four-bit has a ','
*/
public static void bin(char b) {
char[] charBits = toCharBits(b, 16);
outputWholeBits(charBits);
}

/**
* Display the binary form of primitive short
* Every four-bit has a ','
*/
public static void bin(short b) {
char[] charBits = toCharBits(b, 16);
outputWholeBits(charBits);
}

/**
* Display the binary form of primitive int
* Every four-bit has a ','
*/
public static void bin(int b) {
char[] charBits = toCharBits(b, 32);
outputWholeBits(charBits);
}

/**
* Display the binary form of primitive long
* Every four-bit has a ','
* Notice the literal "1L", not "1"
*/
public static void bin(long b) {
char[] charBits = toCharBits(b, 64);
outputWholeBits(charBits);
}

/**
* Display the binary form of primitive float
*/
public static void bin(float a) {
char[] charBits = toCharBits(Float.floatToIntBits(a), 32);
outputFloatBits(charBits);
}

public static void bin(double a) {
char[] charBits = toCharBits(Double.doubleToLongBits(a), 64);
outputDoubleBits(charBits);
}


static char[] toCharBits(long num, int size) {
char[] charBits = new char[size];
for (int i = size-1; i >= 0; --i) {
charBits[i] = (num & 1) == 0 ? '0' : '1';
num >>>= 1;
}
return charBits;
}

static void outputWholeBits(char[] charBits){
for(int i = 0; i < charBits.length; i++){
System.out.print(charBits[i]);
if((i % 4 == 3)&&(i != charBits.length-1)) {
System.out.print(",");
}
}
System.out.println();
}

static void outputFloatBits(char[] charBits){
for(int i = 0; i < charBits.length; i++){
System.out.print(charBits[i]);
if((i == 0)||(i == 8)) {
System.out.print(" ");
}
}
System.out.println();
}

static void outputDoubleBits(char[] charBits){
for(int i = 0; i < charBits.length; i++){
System.out.print(charBits[i]);
if((i == 0)||(i == 11)) {
System.out.print(" ");
}
}
System.out.println();
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧