JAVA十进制数转换为二进制,八进制,十六进制数的算法
java十进制数转换为二进制,八进制,十六进制数的算法
using
using
using
using
using
using
usingSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;
namespaceExDtoB
{
publicpartialclassForm1:Form
{
publicForm1()
{
InitializeComponent();
}
//十进制转二制
publicstringDtoB(intd)
{
stringb="";
//判断该数如果小于2,则直接输出
if(d
{
b=d.ToString();
}
else
{
intc;
ints=0;
intn=d;
while(n>=2)
{
s++;
n=n/2;
}
int[]m=newint[s];
inti=0;
do
{
c=d/2;
m[i++]=d%2;
d=c;
}while(c>=2);
b=d.ToString();
for(intj=m.Length-1;j>=0;j--)
{
b+=m[j].ToString();
}
}
returnb;
}
//十进制转八进制
publicstringDtoO(intd)
{
stringo="";
if(d
{
o=d.ToString();
}
else
{
intc;
ints=0;
intn=d;
inttemp=d;
while(n>=8)
{
s++;
n=n/8;
}
int[]m=newint[s];
inti=0;
do
{
c=d/8;
m[i++]=d%8;
d=c;
}while(c>=8);
o=d.ToString();
for(intj=m.Length-1;j>=0;j--)
{
o+=m[j];
}
}
returno;
}
//十进制转十六进制
publicstringDtoX(intd)
{
stringx="";
if(d
{
x=chang(d);
}
else
{
intc;
ints=0;
intn=d;
inttemp=d;
while(n>=16)
{
s++;
n=n/16;
}
string[]m=newstring[s];
inti=0;
do
{
c=d/16;
m[i++]=chang(d%16);//判断是否大于10,如果大于10,则转换
为A~F的格式
d=c;
}while(c>=16);
x=chang(d);
for(intj=m.Length-1;j>=0;j--)
{
x+=m[j];
}
}
returnx;
}
//判断是否为10~15之间的数,如果是则进行转换
publicstringchang(intd)
{
stringx="";
switch(d)
{
case10:
x="A";
break;
case11:
x="B";
break;
case12:
x="C";
break;
case13:
x="D";
break;
case14:
x="E";
break;
case15:
x="F";
break;
default:
x=d.ToString();
break;
}
returnx;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
textBox2.Text=DtoB(Convert.ToInt32(textBox1.Text));//十转二进制}
privatevoidbutton2_Click(objectsender,EventArgse)
{
textBox2.Text=DtoO(Convert.ToInt32(textBox1.Text));//十转八进制}
privatevoidbutton3_Click(objectsender,EventArgse)
{
textBox2.Text=DtoX(Convert.ToInt32(textBox1.Text));//十转十六进制}
}
}