1.在C語言中我們練習過正數二進制和十進制的轉換
2.補碼爲反碼+1,所以先取出反碼,在通過運算末位爲0,改爲1.末位爲1,改爲0,加到當前位爲0改爲1
java代碼如下:
public static String converttoHex(byte a) {
String con="";
int[]nn =new int[8];
int i=0;
int num=0;
if(a>=0)
{
while(a!=0)
{
num=a%2;
nn[7-i]=num;
a=(byte) (a/2);
i++;
}
for(int j=0;j<8;j++)
{
con+=nn[j];
}
}
else
{
for(int j=0;j<8;j++)
nn[j]=1;
a=(byte) (0-a);
while(a!=0)
{
num=a%2;
nn[7-i]=convert(num);
a=(byte) (a/2);
i++;
}
//進行補碼運算
i=7;
while((i>=0)&&(nn[i]!=0))
{
nn[i]=0;
i--;
}
if(i>=0)
nn[i]=1;
for(int j=0;j<8;j++)
{
con+=nn[j];
}
}
return con;
}