您的位置:首页 > 编程语言 > Java开发

负数二进制(补码形式)和十进制的转换

2017-06-27 09:14 961 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 二进制