Operador y conversión de tipo de datos [Java de la entrada al suelo]

Conversión de tipo de datos

En el programa Java, los datos necesarios para participar en el cálculo deben garantizar la coherencia del tipo de datos. Si el tipo de datos no es coherente, se producirá la conversión de tipos.

① Conversión automática de tipos

Se agregan una variable de tipo int y una variable de tipo byte ¿Qué tipo de datos será el resultado?

int i = 1;
byte b = 2;

Como resultado de la operación, el tipo de variable será el tipo int, que es el fenómeno de conversión automática de tipos del tipo de datos.
Conversión automática de tipos: el tipo con un rango de valores pequeño se promueve automáticamente a un tipo con un rango de valores grande.

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 del principio de conversión La
memoria de tipo byte ocupa 1 byte, y se promoverá a tipo int cuando se opera con tipo int, y se agregan automáticamente 3 bytes, por lo que el resultado del cálculo sigue siendo tipo int.
Inserte la descripción de la imagen aquí

De la misma manera, cuando una variable de tipo int se opera con una variable doble, los datos de tipo int se promoverán automáticamente a tipo doble para su operación.

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 
}

Reglas de conversión
Promocionar de tipos de rango pequeño a tipos de rango grande
byte, short, char -> int -> long -> float -> double

② Conversión de tipo forzada

¿Qué sucede cuando se asigna 1.5 a una variable de tipo int? Se produce un error de compilación y no debe asignarse. El tipo doble tiene 8 bytes y el tipo int tiene 4 bytes. 1.5 es un tipo doble, el rango de valores es mayor que int. Se puede entender que double es un hervidor de 8 litros e int es un hervidor de 4 litros. No se puede poner el agua del hervidor grande directamente en el hervidor pequeño. Si desea que la asignación tenga éxito, puede asignar el valor solo si lanza el tipo doble al tipo int mediante una conversión de tipo forzada.
Conversión de tipo coercitiva: convierta a la fuerza un tipo con un rango de valores grande en un tipo con un rango de valores pequeño. La conversión automática la realiza Java, mientras que la conversión forzada requiere que la realicemos manualmente.

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

Nota: ① El
punto
flotante se convierte en un número entero, y el punto decimal se cancela directamente, lo que puede causar la pérdida de precisión de datos. ② La conversión forzada de int a corto cortará 2 bytes, lo que puede causar pérdida de datos

Tabla de códigos ASCII

Dentro de la computadora hay datos binarios 0 y 1. ¿Cómo puede la computadora reconocer directamente los caracteres humanos? Nació el concepto de tabla de codificación.
Tabla de codificación: Consiste en formar una tabla con los caracteres humanos correspondientes y un número decimal.
Inserte la descripción de la imagen aquí
En correspondencia con todas las letras, números y símbolos en inglés con el sistema decimal, se creó la primera tabla de codificación ASCII (Código de intercambio de información estándar estadounidense) del mundo.
En el proceso de cálculo del tipo char y el tipo int, el carácter del tipo char primero consulta la tabla de codificación para obtener 97, y luego suma con 1, el resultado es 98. El tipo char se promueve al tipo int. El tipo char tiene 2 bytes y el tipo int tiene 4 bytes.

Operador

Operador aritmético

Inserte la descripción de la imagen aquí
En el lenguaje Java, los enteros utilizan los operadores anteriores, no importa cómo se calculen, no obtendrán decimales.
Nota:
①Preste atención al operador de suma cuando concatene cadenas, solo agregando directamente a la cadena se convertirá en una cadena.
②División "/" Cuando ambos lados son números enteros, tome la parte entera y redondee el resto. Cuando uno de los lados sea de coma flotante, divida de acuerdo con las reglas normales.
③ "%" es el símbolo para el resto de divisores, y el resto de decimales no tiene sentido. El signo de resultado es el mismo que el signo del resto.
④ Un número entero es el dividendo y 0 no puede ser el divisor; de lo contrario, se informará un error.

Operador de incremento y decremento

i ++, sumar y sumar, primero asigne el valor de i a toda la expresión, luego sume 1 a
i, ++ i, sume antes, sume 1 a i, y luego asigne el resultado a toda la expresión.
El operador de resta también es el mismo Razón fundamental.

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 asignación

El operador de asignación consiste en asignar el valor del lado derecho del símbolo a la variable de la izquierda.
Inserte la descripción de la imagen aquí
Nota: Los operadores de asignación en forma de + = forzarán automáticamente el resultado al tipo de datos del lado izquierdo del signo igual.

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

Operador de comparación

El operador de comparación es una operación para comparar dos datos, el resultado de la operación es booleano verdadero o falso
Inserte la descripción de la imagen aquí

Operadores logicos

El operador lógico es un operador que se utiliza para conectar dos resultados de tipo booleano, el resultado de la operación es booleano verdadero o falso.
Inserte la descripción de la imagen aquí

Operador ternario

El operador ternario también se denomina operador ternario.
Formato:

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

Método de cálculo del operador ternario: el
resultado de la expresión de tipo booleano es verdadero, y el resultado general del operador ternario es el resultado 1, que se asigna a la variable.
El resultado de la expresión de tipo booleano es falso, y el resultado general del operador ternario es el resultado 2, que se asigna a la variable.

Supongo que te gusta

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