zoukankan      html  css  js  c++  java
  • 国庆随笔

    反码、补码跟原码的概念:

    原码就是早期用来表示数字的一种方式: 一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。

    正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反。

    正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加1。

    运行TestDouble.java之后,发现小数位后十几位后还有数,导致失真,Java中的简单浮点数类型float和double不能够进行运算,因为大多数情况下是正常的,但是偶尔会出现如上所示的问题。这个问题其实不是JAVA的bug,因为计算机本身是二进制的,而浮点数实际上只是个近似值,所以从二进制转化为十进制浮点数时,精度容易丢失,导致精度下降。

    int X=100;

    int Y=200;

    System.out.println("X+Y="+X+Y);

    System.out.println(X+Y+"=X+Y");这个结果为x+y=100200和300=x+y。

    像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 “软件”。

    package saedf;
    import java.util.*;
    public class kkl {
    public static void main(String[] args)
    {
    Scanner in=new Scanner(System.in);
    int math1=0;
    int math2=0;
    int sum;
    double sum1;
    int i;
    int m;
    double k;
    int success=0;
    int failure=0;
    for(i=0;i<30;i++)
    {
    int intVal1 = (int)(Math.random() * 200 + 0);
    math1=intVal1;
    int intVal2=(int)(Math.random()*200+0);
    math2=intVal2;
    if(i%4==0)
    {
    sum=math1+math2;
    System.out.println("加法:"+math1+"+"+math2+"=");
    m=in.nextInt();
    if(m==sum)
    {
    System.out.println("正确,请做下一道题");
    success++;
    }
    else
    {
    System.out.println("回答错误,请做下一道题");
    failure++;
    }
    }
    if(i%4==1)
    {
    sum=math1-math2;
    System.out.println("减法:"+math1+"-"+math2+"=");
    m=in.nextInt();
    if(m==sum)
    {
    System.out.println("正确,请做下一道题");
    success++;
    }
    else
    {
    System.out.println("回答错误,请做下一道题");
    failure++;
    }
    }
    if(i%4==2)
    {
    sum=math1*math2;
    System.out.println("乘法:"+math1+"×"+math2+"=");
    m=in.nextInt();
    if(m==sum)
    {
    System.out.println("正确,请做下一道题");
    success++;
    }
    else
    {
    System.out.println("回答错误,请做下一道题");
    failure++;
    }
    }
    if(i%4==3)
    {
    sum1=math1/math2;
    System.out.println("除法:"+math1+"÷"+math2+"≈");
    k=in.nextDouble();
    if(k>sum1-0.5&&k<sum1+0.5)
    {
    System.out.println("正确,请做下一道题");
    success++;
    }
    else
    {
    System.out.println("回答错误,请做下一道题");
    failure++;
    }
    }
    }
    System.out.println("总共完成30道题,回答正确"+success+"道,"+"回答错误"+failure+"道。");
    }
    }

    验证码登录界面:

    package saedf;

    public class code {
    public static void main(String[] args)
    {
    String code1="";
    int code2=0;
    for(int i=0;i<4;i++)
    {
    int value=(int)(Math.random()*2+0);
    if(value==0)
    {
    code1="";
    int value1 = (int)(Math.random() * 26 + 97);
    code1 =code1+(char)value1;
    System.out.println(code1);
    }
    else
    {
    int value2=(int)(Math.random()*10+0);
    code2=value2;
    System.out.println(code2);
    }
    }
    System.out.println();
    }
    }

    没有登录界面,只有验证码。

  • 相关阅读:
    #3232. 「POI2019 R1」Najmniejsza wspólna wielokrotność
    bzoj4129 Haruna's Breakfast
    uoj:【UNR #3】配对树
    #3409. 小P的生成树(mst)
    #1790. 小A的树
    #2689. 异或树(tree)
    #4740. 校运会
    #4738. 迷惑数字统计
    #4742. 寻找字符串
    dtoj1825. 放棋子(chess)
  • 原文地址:https://www.cnblogs.com/jccjcc/p/9750691.html
Copyright © 2011-2022 走看看