数字的ascii码怎么计算(ascii码计算和码表分享)


ASCII码表、类型转换、Random、Scanner、运算符、三目、选择控制

一、ASCII码表

因为计算机内部只能识别01二进制数字,对于数字而言,可以直接转换为二进制,但是对于人类的文字而言如何转换为二进制的01呢?因为自己算最早出现在美国,所以美国就编写了一张码表,将人类的语言和符号和计算机中的01进行对应。

American Standard Code for Information Interchange,美国信息交换标准代码。

java基础-1-ASCII码表、运算符、选择控制

ASCII码表

当输入人类语的时候,操纵系统就会去查询对应的码表,将这些语言转换为对应的二进制,因为是美国人的语言只有英文,所以ASCII中只有英文和一些标点,每个英文字母和符号对应一个字节(8位)的二进制数字。

java基础-1-ASCII码表、运算符、选择控制
java基础-1-ASCII码表、运算符、选择控制

单个英文字母对应一个字节

不需要我们全部记忆,只需大家记住(0-­9)对应(48-­57),(A­-Z)对应(65­-90),(a-­z)对应(97­-122)。

因为不能识别中文,所以中国编写自己第一张简体中文编码表GB2312(简体中文,符号,日本假名),因为存的字有限,所以后来升级成为GBK(增加繁体中文和少数名族文字),我们的操作系统,如果设置成中文就是GBK编码。

因为后来出现了很多码表,所以世界标准组织ISO推出了Unicode编码表(万国码表),规定一个字符占用两个字节。

所有的编码表都支持ASCII编码表。

二、基本数据类型的转换

1、自动转换:范围小的可以向范围大的进行转换

byte <short < int < long < floa < double

2、强制转换:范围大的向小的进行转换,需要强制类型转换

小范围数据类型 标识符 = (小范围数据类型) 变量名称

int b = a;
//小范围的数向大范围的数转换的时候直接转换
//强制类型转换,大范围的数向小范围的数转换的时候
//强制类型转换的格式是
//小范围类型 标识符 = (小范围类型) 大范围的变量
byte c = (byte) b;

三、int和char类型数据转换

char转换成int,字符型和数值型进行转换的时候都会查询编码表,由于int 4个字节,char 2个字节,所以属于自动的类型转换。

int转换成char,需要强制类型转换。

如果char是汉字,转换成整数查询的就是Unicode编码表。

char类型的最大整数是65535,因为char没有负数。

char可以直接赋值为Unicode编码,格式为uxxxx,十六进制。

char a = 'a';
int b = a;
System.out.println(b);  //97
int c = 97;
char d = (char)c;
System.out.println(d);  //a
char chineseChar = 'u674e';
System.out.println(chineseChar);  //李

四、运算符

4.1、算数运算符

java基础-1-ASCII码表、运算符、选择控制

算数运算符

加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。

除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。

“%”应用于奇偶判断和012012类似的数据结构,为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。

整数做被除数,0不能做除数,否则报错。

++a和a++的区别。

// 参与运算的时候,如果是 a++,先赋值后运算,如果是++a,先运算,后赋值
int a=1;
int b = a++;
System.out.println("a:"+a+"---------"+"b:"+b);     //a:2---------b:1
int d = ++a;
System.out.println("a:"+a+"---------"+"d:"+d);     //a:3---------d:3

4.2、赋值运算符

java基础-1-ASCII码表、运算符、选择控制

赋值运算符

4.3、比较运算符

java基础-1-ASCII码表、运算符、选择控制

比较运算符

4.4、逻辑运算符

java基础-1-ASCII码表、运算符、选择控制

逻辑运算符

当使用短路与或者短路或时,只要能判断出结果则后边的部分就不再判断。

4.5、位运算符

java基础-1-ASCII码表、运算符、选择控制

位运算符

^运算规律

  • 1^0=1,0^0=0,任何数和0相异或得到的是这个数本身。
  • 0^1=1,1^1=0,任何数和1相异或得到的是这个数的相反。
  • 一个数自己和自己异或得到的是0。

五、三目算符

  • 必须有结果,?后必须跟有东西
System.out.println( 1<5 ? “success” : “fail” );

六、选择控制语句

if控制语句

当括号内的内容是true的时候,执行{}中的内容

//并列if判断,无论上面的条件成立与否,下面的if都会进行判断
if(a < b){
              System.out.println("a小于b");
}
if(a > b){
              System.out.println("a大于b");
}
if(a == b){
              System.out.println("a等于b");
}

if….else..控制语句

//上面条件成立下面就不在判断
if(a < b){
              System.out.println("a小于b");
}else{
              System.out.println("a不小于b");
}

if…else if…else控制语句

//上面条件成立下面就不在判断
if(a < b){
              System.out.println("a小于b");
}else if(a > b) {
              System.out.println("a大于b");
}else {
              System.out.println("a等于b");
}

多条件判断

if(1<a&&a<5){
System.out.println("并且是&&,两个条件都为真");
}
if(a==1 || a==3){
System.out.println("或者是||,两个条件至少有一个为真");
}
if(a!=3 || a!= 4){
System.out.println("或者是||,两个条件至少有一个为真,!=表示不等于");
}

switch case语句

switch后边的表达式只能是整型字符型(byte,short,int,char),枚举类型,其中jdk7之后支持字符串型。

int day = 4;
switch (day) {
    case 1:
               System.out.println("星期一");
               break;
    case 2:
               System.out.println("星期二");
               break;
    case 3:
               System.out.println("星期三");
               break;
    case 4:
               System.out.println("星期四");
               break;
    case 5:
               System.out.println("星期五");
               break;
    case 6:
               System.out.println("星期六");
               break;
    case 7:
               System.out.println("星期日");
               break;
    default:
               break;
}
//星期四
 /*
* 获取当前年份月份的天数
* 1、获取当前月份,switch进行判断
* 2、获取当前的年份,使用if进行判断
* 3、(年份被4整除并且不能被100整除)或者年份能被400整除
* 4、输出29天
* 5、如果上述条件不成立,输出28天
*/
int month = 2;
int year = 2118;
switch (month) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
                System.out.println("31天");
                break;
    case 4:
    case 6:
    case 9:
    case 11:
                System.out.println("30天");
                break;
    default:
                if((year%4==0&&year%100!=0)||year%400==0){
                               System.out.println("29天");
                }else{
                               System.out.println("28天");
                }
                break;
}

七、Scanner类

  1. 属于引用类型,创建的时候需要固定格式 数据类型 变量名 = new 数据类型();
  2. 需要导入所在的包,导包格式: importjava.util.Scanner;
  3. 创建对象 Scanner sc = new Scanner(System.in);
  4. 获取输入的整数 int a = sc.nextInt();
  5. 获取输入的字符串 String str = sc.nextLine();
  6. 注意sc.nextInt()和sc.nextLine()会中断程序。

八、Random类

  1. 需要导入所在的包,导包格式: importjava.util.Random;
  2. 创建对象 Random ran = new Random();
  3. 获取随机整数范围是[0,50): int a =ran.nextInt(50);
  4. 获取随机小数范围是[0,1): double b =ran.nextDouble();
  5. 如何获取一个[a,b]的随机数 int a =rand.nextInt(b – a + 1) + a;

九、循环结构

while循环和do–while循环

while循环的格式

当条件为真的时候执行循环体中的内容

Random ran = new Random();
int a = ran.nextInt(20)+1;
while(a > 12){
        System.out.println(1111);
        a = ran.nextInt(20)+1;
}

do–while循环

先执行do中的内容,然后进行条件判断,如果条件为true,执行循环体中的内容

在do中定义的变量只能在do中使用,不能在条件中和do–while外进行使用

int b = 0;
do {
      b = 13;
      System.out.println(11111);
} 
while (b < 10){
      System.out.println(22222);
};

for循环

for循环的格式

//先定义一个变量i,当i<10的时候执行循环内容,每执行一次
//在for中定义的i,只能在for中使用
for(int i = 0;i < 10; i++){
           System.out.println("你好");
           System.out.println(i);
}
for(int i = 0; i < 9; i++){
           for(int j = 0; j < 10; j ++){
                       System.out.println(i+"----"+j);
           }
}

break

break表示跳出当前循环,如果双层for循环写在外层跳出外层,写在内层跳出内层。

continue

continue表示跳出当前此次循环,下次循环继续,如果双层for循环写在外层跳出外层,写在内层跳出内层。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论