八位二进制转double,关键是有正负

gradeyong 2008-12-04 09:53:38
八位二进制数,
第一位为正负值,
后面七位为小数点后的数字

现在想把这八位二进制转成十进制double小数(带正负),
请问怎么弄?
...全文
178 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaping108 2008-12-05
  • 打赏
  • 举报
回复
String输出的你转下float不就行了
float f = Float.parseFloat(str);
pepsighost 2008-12-05
  • 打赏
  • 举报
回复
6楼正解。
gradeyong 2008-12-04
  • 打赏
  • 举报
回复
不过, 楼上的楼上的帖子

还是按string输出的。。。。。
gradeyong 2008-12-04
  • 打赏
  • 举报
回复
谢谢楼上的楼上
gradeyong 2008-12-04
  • 打赏
  • 举报
回复
谢谢了

程序咋整啊。。。。。
我是按byte读入的。。。
jaywee 2008-12-04
  • 打赏
  • 举报
回复
public class BinaryToDecimal{
final static int binary = 11111111;//假定二进制数为8个1
public static void main(String[] args){
String binaryString = Integer.toString(binary);//将二进制数转换为String
char signChar = binaryString.charAt(0);//提取首字
String sign = "";
if(signChar == '0')//判断首字是否为0,假定0为正
sign = "+";
else sign = "-";
int temp = Integer.parseInt(binaryString.substring(1), 2);//将剩余七位转换为十进制
System.out.println(sign + "0." + temp);//输出
}
}

shenjie1989 2008-12-04
  • 打赏
  • 举报
回复
用反码,补码来实现
daniel_kaka 2008-12-04
  • 打赏
  • 举报
回复
A2=(a.bcdefgh)2
其中,a是符号位,1表示负(-1)0表示正(+1);
转化为10进制如下:
A10=a *[ b*(1/2) + c*(1/2)^2+...+h*(1/2)^7}
  • 打赏
  • 举报
回复
不知道你在说什么,至少举个例子吧?
mizukusa 2008-12-04
  • 打赏
  • 举报
回复
和一个已知的数进行余可以不?
shixitong 2008-12-04
  • 打赏
  • 举报
回复
帮顶!

62,614

社区成员

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

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