88 lines
4.8 KiB
Markdown
88 lines
4.8 KiB
Markdown
---
|
|
title: Hexadecimal Numbers
|
|
localeTitle: Números hexadecimais
|
|
---
|
|
## O sistema numérico hexadecimal
|
|
|
|
Números hexadecimais, muitas vezes abreviados para "números hexadecimais" ou "hexadecimais", são números representados na base 16 em oposição à base 10 que usamos para a aritmética e contagem diária.
|
|
|
|
Em termos práticos, isso significa que cada coluna de um número escrito em hexadecimal pode representar até 16 valores.
|
|
|
|
Os dígitos em hexadecimal usam os símbolos padrão 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 para representar o valor correspondente, e use as seis primeiras letras do alfabeto para representar os valores de 10 a 15 (EG: A, B, C, D, E, F).
|
|
|
|
Na programação, prefixamos constantes hexadecimais com `0x` , com algumas exceções.
|
|
|
|
### Exemplos e explicação
|
|
```
|
|
0x1 == 1
|
|
0xF == 15
|
|
0xFF == 255
|
|
0xFFF == 4095
|
|
0x1000 == 4096
|
|
```
|
|
|
|
No sistema padrão de base 10, cada coluna representa potências crescentes de 10, enquanto na base 16 cada coluna representa potências crescentes de 16.
|
|
|
|
Como visto no exemplo da tabela acima, com um dígito hexadecimal, podemos representar números até e inclusive 15. Adicione outra coluna e podemos representar números até 255, 4095 com outra coluna e assim por diante.
|
|
|
|
## Usos do Hexadecimal na Programação de Baixo Nível
|
|
|
|
Hexadecimal primeiro encontrou seu uso na Ciência da Computação como um recurso de conveniência.
|
|
|
|
Os dados em nossos computadores têm uma unidade de armazenamento comum mais baixa, o Byte. Cada byte contém 8 bits e é capaz de armazenar um número entre 0 e 255, inclusive.
|
|
|
|
O hexadecimal tem a vantagem de ser conciso e ter limites bem definidos.
|
|
|
|
Um único byte é sempre representado por dois dígitos hexadecimais de 0x00 para 0xFF, sendo este último o maior valor por byte de 255.
|
|
|
|
A natureza tersual e alinhada por bytes de números hexadecimais os torna uma escolha popular para engenheiros de software que trabalham em bases de código de baixo nível ou software incorporado.
|
|
|
|
## Usos de números hexadecimais em JavaScript
|
|
|
|
JavaScript suporta o uso de notação hexadecimal no lugar de qualquer inteiro, mas não decimais.
|
|
|
|
Por exemplo, o número 2514 em hexadecimal é 0x9D2, mas não há nenhum modo suportado por idioma de representar 25.14 como um número hexadecimal.
|
|
|
|
Usar hexadecimal no seu código é uma escolha pessoal e estilística e não tem efeito na lógica subjacente implementada pelo seu código.
|
|
|
|
## Usos de números hexadecimais em CSS
|
|
|
|
O CSS usa há muito tempo a notação hexadecimal para representar valores de cores. Considere o seguinte seletor:
|
|
|
|
```css
|
|
.my-container {
|
|
background-color: #112233;
|
|
color: #FFFFFF;
|
|
}
|
|
```
|
|
|
|
O valor da `background-color` é, na verdade, três bytes hexadecimais.
|
|
|
|
O processador CSS trata estes como três bytes individuais, representando Vermelho, Verde e Azul.
|
|
|
|
Em nosso exemplo, 11 corresponde ao componente de cor vermelha, 22 corresponde ao componente de cor verde e 33 ao componente de cor azul.
|
|
|
|
Atualmente, não há como CSS3 definir uma cor com um componente alfa usando hexadecimal. O rascunho 1 proposto do CSS4 inclui uma proposta para permitir um byte extra para especificar valores alfa.
|
|
|
|
Por enquanto, o uso da função `rgba()` padrão é a maneira recomendada de adicionar um valor alfa às suas cores.
|
|
|
|
#### Mais Informações:
|
|
|
|
* [Sistema Numeral Hexadecimal na Wikipédia](https://wikipedia.org/wiki/Hexadecimal_numeral_system)
|
|
* [Cor CSS nos documentos da Web MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/color)
|
|
|
|
#### Referências:
|
|
|
|
* 1 [Módulo de Cor CSS Nível 4 - 4.2. As notações hexadecimais RGB: #RRGGBB](https://www.w3.org/TR/css-color-4/#hex-notation)
|
|
|
|
#### Mais Informações:
|
|
|
|
* [Como funcionam os códigos de cores HEX? (em 60 segundos)](https://www.youtube.com/watch?v=c56x1aj2CPA) - Good Video, que também explica um pouco sobre Números Hexadecimais.
|
|
* [Códigos hexadecimais e teoria da cor](https://www.youtube.com/watch?v=xlRiLSDdqcY) - Um vídeo mais longo que investiga a teoria das cores (como o que são cores aditivas e quais são as cores subtrativas etc.) e também aponta para outros recursos para se aprofundar no tópico.
|
|
* [Web Colors](https://en.wikipedia.org/wiki/Web_colors) - Wikipedia Artigo sobre como as cores são usadas na web.
|
|
* [Artigo da Wikipedia sobre o código hexadecimal](https://en.wikipedia.org/wiki/Hexadecimal)
|
|
* [Artigo da Wikipedia sobre cores da web](https://en.wikipedia.org/wiki/Web_colors)
|
|
* [Cores hexadecimais](http://www.color-hex.com/)
|
|
* [Artigo médio sobre código de cores hexadecimal](https://medium.com/webkul-dev/hex-color-codes-27cd0a37c3ce)
|
|
* [Mais informações sobre cores em CSS](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value)
|
|
* [Explore diferentes cores hexadecimais](http://www.colorhexa.com/) |