Inteiros sem sinais no Kotlin

RMAG news

No último post eu falei sobre os tipos de dados numéricos mais utilizados.
Hoje vamos falar de outros tipos de dados numéricos,
que não são tão utilizados pela maioria dos desenvolvedores.

Hoje vou dos números inteiros sem sinal, mas o que isso quer dizer? São tipos de dados que só aceitam números positivos, onde o valor inicial começa em 0 e vai até a capacidade máxima permitida para o tipo em questão.

O Kotlin fornece os seguintes tipos de dados para valores inteiros sem sinal:

Tipo
Tamanho (bits)
Valor Mínimo
Valor Máximo

UByte
8
0
255

UShort
16
0
65535

UInt
32
0
4,294,967,295 (232 – 1)

ULong
64
0
18,446,744,073,709,551,615 (264 – 1)

Números inteiros sem sinal devem ser declarados de forma específica como abaixo:

val b: UByte = 1u
val s: UShort = 1u
val l: ULong = 1u
val x: UInt = 55u

Repare que todos os números são finalizados com a letra u, pode a ser tanto maiúscula ou minúscula. Você pode inicializar uma variável sem especificar o tipo dela, mas nesse caso o Kotlin vai inferir o tipo UInt ou ULong à depender do tamanho do valor.

val b = 1U // Nesse caso será inferido o UInt como tipo
val k = 4294967298U // Como ultrapassa o tamanho reservado ao UInt é inferido o ULong como tipo.

Caso você queira verificar o tipo da variável você pode rodar o código abaixo:

No Exemplo acima você pode ser perguntar o motivo de estar usando Java juntamente com Kotlin, isso é possível por Kotlin tem uma interoperabilidade com Java, onde é possível utilizar código Java com Kotlin e vice-versa.

Com Kotlin é possível você definir o tipo da variável através da inferência de tipos, especificando que a mesma será do tipo Long, adicionando um L ao final:

Um cuidado muito importante ao se trabalhar com números inteiros sem sinal é que não podemos adicionar um valor negativo, pois isso gerará um erro.

Então se você não tiver certeza de que irá trabalhar apenas com números positivos, escolha outro tipo de dados, assim não acontecerá um erro na sua aplicação. Por hoje vou ficando por aqui, até a próxima.