位运算和浮点数的简单思考
来源:互联网 发布:python 高斯曲线拟合 编辑:程序博客网 时间:2024/05/21 17:31
位运算和浮点数的简单思考
/** * 负数的位运算,先求补码进行位运算,计算完毕后若 符号位高位仍为负数,就再求补码 * * 浮点数的表示是 (-1)^s * M * 2^E * 32位的浮点数,最高位是符号位S,接着11位是指数E,剩下的8位为M * 64位的浮点数,最高位是符号位S,接着11位是指数E,剩下的52位位M * 精度不一致,这也就导致了float转换成double类型后结果可能会不一样的情况 * * 例如 10.5 二进制为 1010.1 相当于 1.0101*2^3 (左移三位) 则 符号位s为0,M为1.0101,E为3 */ public static void main(String[] args) throws Exception{ // 左移(<<) 低位补0 相当于做乘法 System.out.println(15 << 2);// 运行结果是60 System.out.println(-15 << 2); //运行结果是-60 // 右移(>>) 高位补符号位 System.out.println(8 >> 2);// 运行结果是2 System.out.println(-8 >> 2);//运行结果是-2 // 3、无符号右移( >>> ) 高位补0 System.out.println(15 >> 3);// 结果是1 System.out.println(-15 >> 3);// 结果是-2 System.out.println(-15 >>> 3);// 结果是536870910 float a = 6.4f; //对于单精度 二进制表示 尾数只能表示23位的精度 double b = (double)a; //对于双精度 二进制表示 尾数表示的位数更多 System.out.println("b= "+b); //6.400000095367432 }
0 0
- 位运算和浮点数的简单思考
- 嵌套宏展开和浮点数内存值位运算
- 浮点数的表示和基本运算
- 浮点数的表示和基本运算
- 关于浮点数不能进行位运算的问题
- 浮点数的运算
- 浮点数的运算
- 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入
- Java的简单类型进行精确的浮点数运算
- Java的简单类型进行精确的浮点数运算
- 对整数和浮点数存储,little-endian和big-endian字节顺序,以及位运算的一点回顾
- 关于浮点数类型和布尔类型的思考
- 计算机码制和浮点数的学习思考
- 浮点数间的运算
- 浮点数的减法运算
- Java浮点数运算的精确度和四舍五入的问题
- 浮点数精确运算的分析和解决办法
- 浮点数精确运算的分析和解决办法
- logstash remove_field =>["message"]
- android开发:运行App,显示当前界面是哪个activity。
- 带宽计算方法
- FLEX与BISON构造一个高级计算器(未完成)
- Elasticsearch 的一些示例, 增删改查,映射,结构化查询,聚合
- 位运算和浮点数的简单思考
- JAVA不可变类(immutable)机制与String的不可变性
- AndroidMainfest.xml详解——<provider>
- 快过年了 宝妈们是不是准备宝贝的东西
- 关于oc与swift混编问题
- Spring AOP 实现读写分离(MySQL实现主从复制)
- 多数据源调用mysql存储过程
- 自定义Drawable
- ASTM校验和计算与消息返回--根据消息类型切割