usuario tipos tipo por objeto ejemplos definidos declaraciones datos dato java int byte long-integer short

por - tipos de datos y declaraciones en java



Encontrar el tipo de datos Java adecuado (3)

public static void main(String[] args) { Scanner input = new Scanner(System.in); while (input.hasNextLine()) { BigInteger number = new BigInteger(input.nextLine()); int bitLength = number.bitlength(); if (bitLength <= Bytes.SIZE) System.out.println("/u8211 byte"); if (bitLength <= Short.SIZE) System.out.println("/u8211 short"); if (bitLength <= Int.SIZE) System.out.println("/u8211 int"); if (bitLength <= Long.SIZE) System.out.println("/u8211 long"); if (bitLength > Long.SIZE) System.out.println(number + " can''t be fitted anywhere."); } }

Tarea: para encontrar un tipo de datos adecuado Entrada de muestra: 5

-150 150000 1500000000 213333333333333333333333333333333333 -100000000000000

Muestra de salida:

-150 can be fitted in: short int long 150000 can be fitted in: int long 1500000000 can be fitted in: int long 213333333333333333333333333333333333 can''t be fitted anywhere. -100000000000000 can be fitted in: long

Error 1:

error: cannot find symbol int bitLength = number.bitlength(); ^

Error 2:

symbol: method bitlength() location: variable number of type BigInteger

Error 3:

error: cannot find symbol if (bitLength <= Int.SIZE) ^ symbol: variable Int location: class Solution


Error: carácter ilegal: / 8211 antes de cada instrucción If

Para poner este personaje en tu código us /u8211

Si la declaración y cómo se tomará la entrada del número que no se puede acomodar en cualquier tipo de datos?

Debe usar un tipo de datos que pueda acomodarse y numerarse.

Prueba esto en su lugar.

while (input.hasNextLine()) { BigInteger number = new BigInteger(input.nextLine()); int bitLength = number.bitLength() + 1; if (bitLength <= Bytes.SIZE) System.out.println(" /u8211 byte"); if (bitLength <= Short.SIZE) System.out.println(" /u8211 short"); // more checks. if (bitLength > Long.SIZE) // too big.

Habiendo solucionado el problema, hay mucho más por hacer para que funcione, pero usar BigInteger.bitLength () es la solución más elegante.

no se puede encontrar el símbolo if (bitLength <= Int.SIZE)

No hay ningún tipo Int en Java, es Integer .


Lee el número línea por línea. Cuente el bit utilizando BigInteger y divídalo entre 8 para la simplificación de la caja del switch . Echa un vistazo al siguiente código:

Scanner input = new Scanner(new File("so/input.txt")); while (input.hasNextLine()) { BigInteger number = new BigInteger(input.nextLine().trim()); int bitLength = number.bitLength(); int len = bitLength / 8; StringBuilder output = new StringBuilder(number.toString() + " can be fitted in:/n"); switch (len) { case 0: output.append(" byte"); case 1: output.append(" short"); case 2: case 3: output.append(" int"); case 4: case 5: case 6: case 7: output.append(" long"); System.out.println(output); break; default: System.out.println(number.toString() + " can''t be fitted anywhere."); } }


Simplemente puede poner las condiciones con el rango de tipos de datos y verificar si el número de entrada corresponde a qué tipo de datos.

class FindDataType { public static void main(String[] argh) { Scanner sc = new Scanner(System.in); //no. of input values int t = sc.nextInt(); for (int i = 0; i < t; i++) { try { //Take input as long data type long x = sc.nextLong(); System.out.println(x + " can be fitted in:"); //Putting conditions to check the data type if (x >= -128 && x <= 127) { System.out.println("* byte"); System.out.println("* short"); System.out.println("* int"); System.out.println("* long"); } else if (x >= -32768 && x <= 32767) { System.out.println("* short"); System.out.println("* int"); System.out.println("* long"); } else if (x >= -2147483648 && x <= 2147483647) { System.out.println("* int"); System.out.println("* long"); } else if (x >= -9223372036854775808l && x <= 9223372036854775807l) { System.out.println("* long"); } } catch (Exception e) { //Printing exception if no data type matches. System.out.println(sc.next() + " can''t be fitted anywhere."); } } sc.close(); }}