欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-24 23:21:34
ascii码表、类型转换、random、scanner、运算符、三目、选择控制一、ascii码表 因为计算机内部只能识别01二进制数字,对于数字而言,可以直接转换为二进制,但是对于人类的文字而言如何转...

ascii码表、类型转换、random、scanner、运算符、三目、选择控制

一、ascii码表

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

american standard code for information interchange,美国信息交换标准代码。

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

ascii码表

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

数字的ascii码怎么计算(ascii码计算和码表分享)
数字的ascii码怎么计算(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、算数运算符

数字的ascii码怎么计算(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、赋值运算符

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

赋值运算符

4.3、比较运算符

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

比较运算符

4.4、逻辑运算符

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

逻辑运算符

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

4.5、位运算符

数字的ascii码怎么计算(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循环写在外层跳出外层,写在内层跳出内层。