位运算和浮点数的简单思考
2017-01-11 14:31
183 查看
位运算和浮点数的简单思考
/** * 负数的位运算,先求补码进行位运算,计算完毕后若 符号位高位仍为负数,就再求补码 * * 浮点数的表示是 (-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 }
相关文章推荐
- Java的简单类型进行精确的浮点数运算
- Java的简单类型进行精确的浮点数运算
- java大数乘法的简单实现 浮点数乘法运算
- 与afreez一起学习DSP中浮点转定点运算--定点数模拟浮点数运算及常见的策略
- 基于逻辑运算的简单权限系统(实现) JS 版
- 精确的浮点数运算包括加减乘除和四舍五入
- Ajax简单实例----无刷新求和运算
- 【程序思考】简单就是力量
- 基于逻辑运算的简单权限系统(实现) JS 版
- 基于逻辑运算的简单权限系统(实现) JS 版
- 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
- 一个简单的四则运算源代码
- 利用textbox接收两个数,列出一个数组,并做简单的运算
- 函数参数----一道简单问题引发思考
- 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
- 简单的,独立却互联的东西 【思考一下我们想看什么网站,他们要做什么网站】
- 最简单的问题!最简单的思考!
- 关于Hard Code的思考 - 程序员的管理不能简单使用制度
- JavaScript不支持精确的浮点数运算的解决方案
- Struts做的简单的加法运算