原码、反码、补码
来源:互联网 发布:算法统宗中的题目 编辑:程序博客网 时间:2024/06/05 20:54
java int 范围:
采用的是补码进行表示:FFFF~7FFF 即 -2^32 ~~ 2^32-1
-2147483648到2147483647才是正确的!
这篇博客对原码、反码、补码设计的原理讲得很清楚:https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html
以下几点注意:
1) -1-127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补 就是-128. 但是注意因为实际上是使用以前的-0的补码来表示-128, 所以-128并没有原码和反码表示.(对-128的补码表示[1000 0000]补算出来的原码是[0000 0000]原, 这是不正确的)
2) 原码中 [00000000]与[10000000] 均表示 0
补码中 [00000000] 表示 0,[10000000] 表示 -128,补码多了一个表示最小值的数。
反码中 [00000000]与[11111111] 均表示 0
3) 正数的三种编码方式相同:
1 = [00000001]原 = [00000001]补 = [00000001]反
负数的三种编码方式均不同:
-1 = [10000001]原 = [11111111]补 = [11111110]反
代码片段:byte bmax, bmin;short shmax, shmin;char cmax, cmin;int imax, imin;long lmax,lmin;float fmax,fmin;double dmax,dmin;fmax = Float.MAX_VALUE;fmin = Float.MIN_VALUE;dmax = Double.MAX_VALUE;dmin = Double.MIN_VALUE;bmax = Byte.MAX_VALUE;bmin = Byte.MIN_VALUE;cmax = Character.MAX_VALUE;cmin = Character.MIN_VALUE;shmax = Short.MAX_VALUE;shmin = Short.MIN_VALUE;imax = Integer.MAX_VALUE;imin = Integer.MIN_VALUE;lmax = Long.MAX_VALUE;lmin = Long.MIN_VALUE;System.out.println("float max="+fmax);System.out.println("float min="+fmin);System.out.println("double max="+dmax);System.out.println("double max="+dmin);System.out.println("byte max="+bmax);System.out.println("byte min="+bmin);System.out.println("char max="+cmax);System.out.println("char min="+cmin);System.out.println("short max="+shmax);System.out.println("short min="+shmin);System.out.println("int max="+imax);System.out.println("int min="+imin);System.out.println("long max="+lmax);System.out.println("long min="+lmin);输出:float max=3.4028235E38float min=1.4E-45double max=1.7976931348623157E308double max=4.9E-324byte max=127byte min=-128char max=?char min=short max=32767short min=-32768int max=2147483647int min=-2147483648long max=9223372036854775807long min=-9223372036854775808说明:实际上是每种类型的Container类定义的常量。
0 0
- 原码、反码、补码
- 原码-反码-补码
- 原码、反码、补码
- 原码、反码、补码
- 原码,反码,补码
- 原码、反码、补码
- 原码、反码、补码
- 原码、反码、补码
- 原码、反码、补码
- 原码、反码、补码
- 原码、反码、补码
- 原码补码反码
- 原码、反码、补码
- 原码、反码、补码
- 原码、反码、补码
- 原码 补码 反码
- 原码、反码、补码
- 原码 反码 补码
- Removing stop words —— Python Data Science CookBook
- leetcode_middle_34_241. Different Ways to Add Parentheses
- Jetty 的工作原理
- android 获取SD卡相关信息
- 单元测试 Unit Test Generator
- 原码、反码、补码
- C# GDI+ 简单绘图 (三)
- C#输出格式
- 303. Range Sum Query - Immutable
- 数据库基础概念
- [MFC]选择目录对话框和选择文件对话框 保存对话框
- 常见文件类型处理: 属性文件/CSV/EXCEL/HTML/压缩文件
- Jetty服务器的安装配置详解
- Android5.0 标题栏顶部出现空白