美文网首页奇妙的位运算
位运算之二进制表示浮点数

位运算之二进制表示浮点数

作者: 掌灬纹 | 来源:发表于2019-01-22 19:56 被阅读0次

题目:

输入任意一个0-1之间的浮点数,转为2进制数

如果小数点后32位无法精确表示 则输出 ERROR

小数点后用二进制表示为,右移2  即0.5 二进制表示 0.1,0.25表示0.01

0.625 即为 0.101

两个样例:

输入:

0.625     或     0.3

输出:

0.101      或     ERROR

tip:

已知十进制整数 转为二进制数,除二取余。可以思考十进制小数可以乘2取整,

即每次乘2,如果大于1则在当前小数点后位进1,直到取整后为0.

演示过程: 

0.625*2

1.25 -- 0.1

 0.25*2

0.5  -- 0.10

 0.5*2

1.0 -- 0.101

结果 0.101

(Java代码如下)

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

double n = sc.nextDouble();

//字符串拼接

StringBuilder sb = new StringBuilder("0.");

while(n > 0) {

n *= 2;

if(n >= 1) {

sb.append("1");

n--;

}else {

sb.append("0");

}

if(sb.length() > 34) {//32+2

System.out.println("ERROR");

return;

}

}

System.out.println(sb.toString());

}

相关文章

  • python 数字

    整数 复数 浮点数 进制表示 进制转换 运算

  • 位运算之二进制表示浮点数

    题目: 输入任意一个0-1之间的浮点数,转为2进制数 如果小数点后32位无法精确表示 则输出 ERROR 小数点后...

  • 这个情况下可以试试bcd码

    bcd码用4个bit来表示一位十进制的数字,其除了在浮点数的处理上可以保持精度和加快浮点数的运算外,还可以有一些其...

  • 1.5 二进制表示浮点数

    Chapter1: 位运算的奇技淫巧 5. 二进制表示浮点数 问题 给定一个介于0和1之间的实数(如0.625),...

  • LeetCode191——位1的个数(位运算)

    位运算基础 位运算基于整数的二进制表示进行运算。由于计算机内部就是以二进制来存储数据,因此位运算会很快。基本的位运...

  • 深入浅出iOS浮点数精度问题 (上)

    目录 一,浮点数精度丢失? 二,整数的二进制表示 三,浮点数的二进制表示 四,iEEE 754浮点数的手动转换 五...

  • Python浮点数精度损失问题

    浮点数误差浮点数一个普遍的问题就是在计算机的世界中,浮点数并不能准确地表示十进制。并且,即便是最简单的数学运算,也...

  • python 浮点数精确运算解决方案 !

    浮点数误差 浮点数一个普遍的问题就是在计算机的世界中,浮点数并不能准确地表示十进制。并且,即便是最简单的数学运算,...

  • js浮点数运算问题---莫名出现多位小数

    问题:js浮点数运算问题---莫名出现多位小数 // 原因:这是由于在运算的时候先把浮点数转化成二进制后进行运算,...

  • Java基础 - 类型和运算

    11.类型和运算 11.1进制 对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位后自己归0。 ...

网友评论

    本文标题:位运算之二进制表示浮点数

    本文链接:https://www.haomeiwen.com/subject/mxmrjqtx.html