zoukankan      html  css  js  c++  java
  • 动手动脑1

    阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。

    1. 原码

    原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如:如果是8位二进制:

    [+1]原= 0000 0001

    [-1]原= 1000 0001

    第一位是符号位,因为第一位是符号位,所以8位二进制数的取值范围就是:(即第一位不表示值,只表示正负。)

    [1111 1111 , 0111 1111]

    [-127 , 127]

    原码是人脑最容易理解和计算的表示方式。

    2. 反码

    反码的表示方法是:

    正数的反码是其本身;

    负数的反码是在其原码的基础上,符号位不变,其余各个位取反。

    [+1] = [0000 0001]原= [0000 0001]反

    [-1] = [1000 0001]原= [1111 1110]反

    可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值。通常要将其转换成原码再计算。

    3. 补码

    补码的表示方法是:

    正数的补码就是其本身;

    负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(也即在反码的基础上+1)

    [+1] = [0000 0001]原= [0000 0001]反= [0000 0001]补

    [-1] = [1000 0001]原= [1111 1110]反= [1111 1111]补

    对于负数,补码表示方式也是人脑无法直观看出其数值的。通常也需要转换成原码再计算其数值。

    Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就象本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。

    同名变量的屏蔽原则:每个变量都有一个有效区域,即定义的那片区域,出了这个区域,变量将不再有效。(全局变量除外)

    举例:

    package test;

    public class Test {
    private static int Albert = 1;
    public static void main(String[] args) {
    int Albert = 2;
    System.out.println(Albert);
    }

  • 相关阅读:
    android cocos2d-x视频
    Android OpenGL 学习笔记 --开始篇
    Nginx配置详解
    扩展RBAC用户角色权限设计方案
    几种序列化与Get、Set方法的关系
    Kettle大量数据快速导出的解决方案(利用SQL导出百万级数据,挺快的)
    SpringBoot 标准集成MyBatis的2种方式
    Apache Commons io FileUtils 详解
    SpringBoot在工具类中读取配置文件(ClassPathResource)
    利用guava封装RateLimiter 令牌桶算法(AOP实现)
  • 原文地址:https://www.cnblogs.com/wang2232985989/p/14167478.html
Copyright © 2011-2022 走看看