十进制转换为二进制的,基本算法是这个意思
1. 对X进行模2运算。结果非0既1。这就是第一位(最右端)二进制数。2. 将X 除以2,并丢弃余数(也就是用“\”进行整数除法)。3. 如果上一步结果为0,则结束转换,否则从第一步起继续进行转换。如果你还不懂,我们举个例子。假设我们要将13转换为二进制形式(记住,转换是从右到左进行的)1.13 模2等于1,因此第一位(最右边)二进制代码为1。2.13 \ 2等于 6。3.6 模2等于 0,因此第二位二进制代码为0。4.6 \ 2 等于3。5.3 模2 等于1,因此第三位二进制代码为1。6.3 \ 2 等于1. 7.1 模2 等于 1,因此第四位二进制代码为1。8. 1 \ 2 等于0,这表示转换结束。从右到左排列一下上面的结果,就会得出13的二进制数是1101。
import javax.swing.JOptionPane;
public class BaseTen2Two{
public static void main(String[] args){
String strBaseTen;
String prompt="请输入待转换的整数";
strBaseTen=JOptionPane.showInputDialog(prompt);
int baseTen=Integer.parseInt(strBaseTen);
String result="";
int remainder;
while(baseTen!=0){
remainder= baseTen%2;
baseTen/=2;
result=remainder+result;
}
JOptionPane.showMessageDialog(null,result,"黄聪明提醒您",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
result=remainder+result; 按照意思是把每次求模后得到的数连接在一起,但是一个整数(remainder)加上一个字符(result)再赋给一个字符变量是什么意思?为什么这样就能把一些零散的余数拼在一起?谢谢
1. 对X进行模2运算。结果非0既1。这就是第一位(最右端)二进制数。2. 将X 除以2,并丢弃余数(也就是用“\”进行整数除法)。3. 如果上一步结果为0,则结束转换,否则从第一步起继续进行转换。如果你还不懂,我们举个例子。假设我们要将13转换为二进制形式(记住,转换是从右到左进行的)1.13 模2等于1,因此第一位(最右边)二进制代码为1。2.13 \ 2等于 6。3.6 模2等于 0,因此第二位二进制代码为0。4.6 \ 2 等于3。5.3 模2 等于1,因此第三位二进制代码为1。6.3 \ 2 等于1. 7.1 模2 等于 1,因此第四位二进制代码为1。8. 1 \ 2 等于0,这表示转换结束。从右到左排列一下上面的结果,就会得出13的二进制数是1101。
import javax.swing.JOptionPane;
public class BaseTen2Two{
public static void main(String[] args){
String strBaseTen;
String prompt="请输入待转换的整数";
strBaseTen=JOptionPane.showInputDialog(prompt);
int baseTen=Integer.parseInt(strBaseTen);
String result="";
int remainder;
while(baseTen!=0){
remainder= baseTen%2;
baseTen/=2;
result=remainder+result;
}
JOptionPane.showMessageDialog(null,result,"黄聪明提醒您",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
result=remainder+result; 按照意思是把每次求模后得到的数连接在一起,但是一个整数(remainder)加上一个字符(result)再赋给一个字符变量是什么意思?为什么这样就能把一些零散的余数拼在一起?谢谢
中9+8就不能这么理解了
System.out.println("88"+9+8);这里的+都是连接符号