首页 > 代码库 > Java的编码
Java的编码
整数的表达
–原码:第一位为符号位(0为正数,1为负数)
–反码:符号位不动,原码取反
–负数补码:符号位不动,反码加1
–正数补码:和原码相同
-6 | 5 | |
原码 | 10000110 | 00000101 |
反码 | 11111001 | 01111010 |
补码 | 11111010 | 00000101 |
补码运输的例子:
-6+5 -4+5
11111010 11111100
+ 00000101 + 00000101
= 11111111 = 00000001
–打印整数的二进制表示
int a=-6;for(int i=0;i<32;i++){ int t=(a & (0x80000000)>>>i)>>>(31-i); System.out.print(t);}
Float的表示与定义 –支持 IEEE 754
• s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm
• e全0 尾数附加位为0 否则尾数附加位为1, 附加位对应2^0
•s*m*2^(e-127)
-5的IEEE 754表示.
11000000101000000000000000000000
-1*2^(129-127)*(2^0+2^-2) 红色的部分对应附加位
打印float的IEEE754表示的二进制串
public class FloatString {public static void main(String[] args){ float f = 100.2f; int intString = Float.floatToIntBits(f); if(intString!=0x7f800000||intString!=0xff800000||intString!=0x7fc00000) { for(int i =0;i<32;i++) { int t =( intString & (0x80000000>>>i) ) >>> (31-i); System.out.print(t); } }}}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。