[Java da entrada ao solo] conversão de tipo de dados e operador

Conversão de tipo de dados

No programa Java, os dados necessários para participar do cálculo devem garantir a consistência do tipo de dados.Se o tipo de dados for inconsistente, ocorrerá a conversão de tipo.

① Conversão automática de tipo

Uma variável do tipo int e uma variável do tipo byte são adicionadas. Que tipo de dados será o resultado?

int i = 1;
byte b = 2;

Como resultado da operação, o tipo da variável será o tipo int, que é o fenômeno da conversão automática de tipo do tipo de dado.
Conversão automática de tipo: o tipo com uma pequena faixa de valores é automaticamente promovido a um tipo com uma grande faixa de valores.

public static void main(String[] args) {
    
    
 	int i = 1;
 	byte b = 2; 
 	//int类型和byte类型运算,结果是int类型 
 	int j = b + i;
 	System.out.println(j); //3
}

Diagrama do princípio de conversão A
memória do tipo byte ocupa 1 byte, e será promovida ao tipo int quando for operada com o tipo int, e 3 bytes são adicionados automaticamente, de modo que o resultado do cálculo ainda é do tipo int.
Insira a descrição da imagem aqui

Da mesma forma, quando uma variável do tipo int é operada com uma variável double, os dados do tipo int serão automaticamente promovidos ao tipo double para operação.

public static void main(String[] args) {
    
     
  	int i = 1; 
  	double d = 2.5; 
  	//int类型和double类型运算,结果是double类型 
  	double e = d + i; 
  	System.out.println(e); //3.5 
}

Regras de conversão
Promova de tipos de intervalo pequeno para tipos de intervalo grande
byte, short, char -> int -> long -> float -> double

② Conversão de tipo forçada

O que acontece quando 1.5 é atribuído a uma variável do tipo int? Ocorre falha de compilação e não deve ser atribuída. O tipo duplo tem 8 bytes e o tipo int tem 4 bytes. 1.5 é um tipo duplo, o intervalo de valores é maior do que int. Pode-se entender que double é uma chaleira de 8 litros e int é uma chaleira de 4 litros.Você não pode colocar a água da chaleira grande diretamente na chaleira pequena. Se quiser que a atribuição seja bem-sucedida, você pode atribuir o valor apenas se converter o tipo duplo para o tipo int por meio de uma conversão de tipo forçada.
Conversão de tipo coercitiva: converta à força um tipo com uma grande faixa de valores em um tipo com uma pequena faixa de valores. A conversão automática é realizada automaticamente pelo Java, enquanto a conversão forçada exige que a realizemos manualmente.

数据类型 变量名 = (数据类型) 被转数据值;
int i = (int) 1.5;
System.out.println(i); // 1

Observação: ①O
ponto
flutuante é convertido em um número inteiro e o ponto decimal é cancelado diretamente, o que pode causar a precisão da perda de dados. ②A conversão forçada de int em curto cortará 2 bytes, o que pode causar perda de dados

Tabela de códigos ASCII

Existem dados binários 0 e 1. Como fazer o computador reconhecer diretamente caracteres humanos? O conceito de tabela de codificação nasceu.
Tabela de codificação: é para formar uma tabela por caracteres humanos correspondentes e um número decimal.
Insira a descrição da imagem aqui
Correspondendo a todas as letras, números e símbolos ingleses com o sistema decimal, foi criada a primeira tabela de codificação ASCII (American Standard Information Interchange Code) do mundo.
No processo de cálculo do tipo char e do tipo int, o caractere do tipo char primeiro consulta a tabela de codificação para obter 97 e, em seguida, soma 1, o resultado é 98. O tipo char é promovido ao tipo int. O tipo char tem 2 bytes e o tipo int tem 4 bytes.

Operador

Operador Aritmético

Insira a descrição da imagem aqui
Na linguagem Java, os inteiros usam os operadores acima, não importa como sejam calculados, eles não obterão decimais.
Nota:
①Preste atenção ao operador de adição ao concatenar strings.Apenas adicionando diretamente à string, ele será convertido em uma string.
②Divisão "/" Quando ambos os lados são inteiros, pega a parte inteira e arredonda o resto. Quando um dos lados for de ponto flutuante, divida de acordo com as regras normais.
③ "%" é o símbolo para o restante dos divisores e o restante dos decimais não faz sentido. O sinal de resultado é o mesmo que o sinal de resto.
④ Um número inteiro é o dividendo e 0 não pode ser o divisor, caso contrário, um erro será relatado.

Operador de incremento e decremento

i ++, adicione e adicione, primeiro atribua o valor de i a toda a expressão, depois adicione 1 a
i, ++ i, adicione antes, adicione 1 a i e, em seguida, atribua o resultado a toda a expressão.
O operador de subtração também é o mesmo Justificativa.

public static void main(String[] args){
    
    
    int i = 1;
    int j = 1;
    j = i++;
    System.out.println(i); //2
    System.out.println(j); //1
    //先将i的值作为整个表达式i++的值
    //再将i加1
    //最后再执行赋值运算,将整个表达式i++的值赋给j
}
public static void main(String[] args){
    
    
    int a = 1;
    int b = 1;
    b = ++a;
    System.out.println(a); //2
    System.out.println(b); //2
    //先将a加1
    //然后将a加1的值赋给整个表达式++a
    //最后执行赋值运算,将整个表达式++a的值赋给b
}

Operador de atribuição

O operador de atribuição deve atribuir o valor no lado direito do símbolo à variável à esquerda.
Insira a descrição da imagem aqui
Observação: os operadores de atribuição na forma de + = forçarão automaticamente o resultado para o tipo de dados no lado esquerdo do sinal de igual.

public static void main(String[] args) {
    
    
    byte x = 10;
    x += 20; //相当于x = (byte)(x+20);
    System.out.println(x);
}

Operador de comparação

Operador de comparação é uma operação para comparar dois dados, o resultado da operação é booleano verdadeiro ou falso
Insira a descrição da imagem aqui

Operadores lógicos

Operador lógico é um operador usado para conectar dois resultados do tipo booleano, o resultado da operação é booleano verdadeiro ou falso
Insira a descrição da imagem aqui

Operador ternário

O operador ternário também é chamado de operador ternário.
Formato:

数据类型 变量名 = 布尔类型表达式 ? 结果1 : 结果2;
String i = (12 % 2 == 0) ? "偶数" : "奇数";

Método de cálculo do operador ternário: o
resultado da expressão do tipo booleano é verdadeiro e o resultado geral do operador ternário é o resultado 1, que é atribuído à variável.
O resultado da expressão do tipo booleano é falso e o resultado geral do operador ternário é o resultado 2, que é atribuído à variável.

Acho que você gosta

Origin blog.csdn.net/weixin_51678389/article/details/109155241
Recomendado
Clasificación