• 第二次课,课后实验报告


    动手动脑一:分别给程序中的s和t赋值,然后再判断两者是否相等,再定义一个U,赋值为small,再判断其是否和S相等,并输出所有的元素。

     动手动脑二:

    在计算机内,定点数有3种表示法:原码、反码和补码。

    反码:

            正数:正数的反码与原码相同。

            负数:负数的反码,符号位为“1”,数值部分按位取反。 例如: 符号位 数值位

            [+7]反= 0 0000111 B

            [-7]反= 1 1111000 B

            注意:1. 数0的反码也有两种形式,即

                           [+0]反=00000000B

                           [- 0]反=11111111B

                      2. 8位二进制反码的表示范围:-127~+127

     原码:在数值前直接加一符号位的表示法。

               例如: 符号位 数值位

               [+7]原= 0 0000111 B

               [-7]原= 1 0000111 B

               注意:a. 数0的原码有两种形式:[+0]原=00000000B [ -0]原=10000000B

                         b. 8位二进制原码的表示范围:-127~+127

    补码:

            正数:正数的补码和原码相同。

            负数:负数的补码则是符号位为“1”。并且,这个“1”既是符号位,也是数值位。数值部分按位取反后再在末位(最低位)加1。也就是“反码+1”。

            例如: 符号位 数值位

            [+7]补= 0 0000111 B

            [-7]补= 1 1111001 B

            补码在微型机中是一种重要的编码形式,请注意:

                        a. 采用补码后,可以方便地将减法运算转化成加法运算,运算过程得到简化。 正数的补码即是它所表示的数的 真值,而负数的补码的数值部分却不是它所表示的数的真值。采用补码进行运算,所得结果仍为补码。

                        b. 与原码、反码不同,数值0的补码只有一个,即 补=00000000B。

                        c. 若字长为8位,则补码所表示的范围为-128~+127;进行补码运算时,应注意所得结果不应超过补码所能表示数的范围。

    验证,java中数的类型

    package kehou;
    
    
    
     public class Bit {
         public static void main(String[] args) {
         int a=-13;
         System.out.println(a>>1);
     
         }
     
     }

    A:若用原码表示。-13的机器数表示为[10001101]原,右移后表示为[11000110],十进制为-70,与正解-7不一样。所以不是用原码表示。

     B:若用反码表示。-13的机器数表示为[11110010]反,右移后表示为[11111101]反,转换成原码为[10000010]原,十进制为-2,与正解-7不一样。所以不是用反码表示。

    C:若用补码表示。-13的机器数表示为[11110010]补,右移后表示为[11111110]补,转换成补码为[111111001]反,再转换成原码为[100000111],十进制为-7,与正解-7一致。所以Java中的数是用原码表示的。

      综上,Java中的数是用补码表示的.

    动手动脑三:

    package kehou;
    
    
    
     public class Bit {
         int a=2;
        public static void main(String[] args)
        {int a=22;
        System.out.println(a);
        }
     }

     由图可知,同名变量存在时,遵循着全局变量<局部变量的原则。

    动手动脑四:

    package kehou;
    
    
    
    public class TestDouble {
    
        public static void main(String args[]) {
            System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
            System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
            System.out.println("4.015 * 100 = " + (4.015 * 100));
            System.out.println("123.3 / 100 = " + (123.3 / 100));
        }
    }

    结论: 使用double类型的数值进行计算,其结果是不精确的。

    动手动脑五:

    package kehou;
    
    
    
    public class Bit {
    
        public static void main(String args[]) {
            int x=100;
               int y=200;
               System.out.println("x+y="+x+y);
               System.out.println(x+y+"+x+y");
        }
    }

     结论:+号在java中会将+号前面的进行求和,后面的则只会单独的作为一个链接的符号。

  • 相关阅读:
    requets中urlencode的问题
    洛谷$P4503 [CTSC2014]$企鹅$QQ$ 哈希
    洛谷$P5446 [THUPC2018]$绿绿和串串 $manacher$
    洛谷$P5329 [SNOI2019]$字符串 字符串
    洛谷$P1390$ 公约数的和 欧拉函数
    洛谷$P4318$ 完全平方数 容斥+二分
    入门懵逼钨丝繁衍
    $ CometOJ-Contest#11 D$ $Kruscal$重构树
    洛谷$P4884$ 多少个1? 数论
    入门数论简单总结
  • 原文地址:https://www.cnblogs.com/520520520zl/p/11549721.html
Copyright © 2020-2023  润新知