Conversão de códigos hexadecimais
Com o objetivo de ampliar o conhecimento da placa sobre o modo de "pensar" do computador, resolvi criar este tutorial.
Bom depois de estudar sobre resolver criar este tutorial por ter em vista que a comunidade de scripters do sa-mp é de uma grande maioria novatos e que como eu não tinha a menor ideia de como a arquitetura binária funcionava e como o computador "pensava", e tendo em vista também que todo programador deve conhecer como o seu código é processado pelo computador, sendo essa a base de nosso trabalho.
Sem mais delongas vamos iniciar o tutorial.
Com o objetivo de ampliar o conhecimento da placa sobre o modo de "pensar" do computador, resolvi criar este tutorial.
Bom depois de estudar sobre resolver criar este tutorial por ter em vista que a comunidade de scripters do sa-mp é de uma grande maioria novatos e que como eu não tinha a menor ideia de como a arquitetura binária funcionava e como o computador "pensava", e tendo em vista também que todo programador deve conhecer como o seu código é processado pelo computador, sendo essa a base de nosso trabalho.
Sem mais delongas vamos iniciar o tutorial.
O que são códigos hexadecimais?
Para explicar isso do começo vamos primeiro pensar no que vem antes do hexadecimal, o binário.
O código binário é um sistema de base 2 por usar apenas dois caracteres em seu processamento (0 e 1).
Já o código Hexadecimal é um sistema de caracteres em base 16 (pode ser representado por 16 caracteres) e é representado pelo segundo conjunto:
S = {0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F}
Logo o sistema hexadecimal nada mais é que um sistema criado para diminuir a escrita de números grandes (como 165 que em hexadecimal pode ser representado por A5) não sendo necessário representá-lo de modo binario que fica muito mais complexo (0000 0000 1010 0101).
Mais a frente vamos aprender a conversão de Hexadecimal para Decimais e tudo ficará mais claro.
RGB ou as famosas Red - Green - Blue
Vamos comeзar do bбsico. Você já deve ter ouvido falar das famosas cores primárias (as famosas Vermelho, Azul e Amarelo), bem o problema й que o nosso monitor, seja do computador, televisão, câmeras digitais, todos usam as cores Vermelho, Verde e Azul.
A partir da mistura dessas cores é possível ter-se todas as outras cores do mesmo jeito em que Vermelho, Amarelo e Azul.
Mas e o que os cуdigos hexadecimais tem a ver com isso? Simples, o código RGB é representado por decimais que tem sua cadeia de base 10 já o hexadecimal é representado por uma cadeia de base 16 sendo possível representar de mais formas os números decimais, assim como a forma de escrever o código RGB.
Exemplo:
(0,139,139)
Os números citados acima representam respectivamente a quantidade de cor Vermelha (0), Verde (139) e Azul (139) que serão misturados para a obtenção de uma determinada cor.
Jб o cуdigo hexadecimal desses nъmeros й #008B8B .
É muito mais fácil escrever "#008B8B" do que "0, 139, 139". Sendo assim esse ъnico cуdigo estб representando 3 nъmeros.
É importante saber também que o nъmero mбximo no cуdigo RGB serб 255.
Convertendo um código hexadecimal em RGB
O processo de conversão de códigos hexadecimais não é complexo quando é entendido de modo concretizado.
Exemplo do cуdigo de uma cor hexadecimal: #4B0082
Este й o cуdigo responsбvel pela cor "Indigo" (nгo me pergunte de onde vem o nome por favor).
Mas Mandrack, qual o sentido disso??
Bem, eu criei uma metodologia em passos para a conversão do código hexadecimal e que vai esclarecer sua dúvida.
Primeiro passo:
Exclua o "#" do cуdigo, ele nada mais é do que um indicador hexadecimal. Nгo farб diferenзa para nуs neste momento.
Nosso código ficará assim: 4B0082
Segundo passo:
Separe o código em 3 partes de 2 caracteres cada.
Exemplo: 4B 00 82
Agora ficou fácil certo? Usando uma lógica, participe ver o que cada uma dessas 3 divisões representa, logo elas representam respectivamente os cores Vermelho (Vermelho), Verde (Verde) e Azul (Azul).
Mas Mandrack como assim?
Vou explicar os outros passos e tudo vai se encaixar.
Terceiro passo:
Procurar as letras existentes em cada uma das divisões de 2 caracteres.
Using our cуdigo, logo temos uma única letra, o B
4 B 00 82
Agora preste atenção, nos cуdigos hexadecimais existem 6 letras que podem estar presentes, sendo elas A, B, C, D, E e F. Cada letra representa respectivamente um número sendo A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. Para organizar melhor isso vou separar aqui em baixo.
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15
Quarto passo:
Logo após identificar as letras, vamos realizar uma conta processada pelo computador ao passar cada cуdigo para RGB. Bom a conta é feita da seguinte maneira:
(O primeiro caractere * 16) + O segundo caractere
Veja no nosso exemplo abaixo:
4 B -> ( 4 * 16) + 11 = 75 (Red)
0 0 -> ( 0 * 16 ) + 0 = 0 (Verde)
4 8 -> ( 4 * 16) + 8 = 130 (Azul)
Lembrando que o "B" vale 11, por isso utilizamos o valor 11.
Sendo assim temos o nosso cуdigo hexadecimal traduzido para o RGB.
Sabendo disso podemos deduzir o porquê do número maior encontrado na representação RGB й o 255 pois temos a seguinte representação:
#FFFFFF (código da cor branca)
logo:
F F -> ( 15 * 16) + 15 = 255 (Red)
F F -> ( 15 * 16) + 15 = 255 (Green)
F F -> ( 15 * 16) + 15 = 255 (Blue)
Como nуs podemos ler o cуdigo RGB de modo simples?
Sabendo que o número máximo encontrado na cor RGB é o 255 podemos ler-lo utilizando a porcentagem (seria a mesma coisa que o computador faz mas ele é complicado).
Logo temos a cor #ADD8E6 (Azul Claro), vamos a conversa.
A D -> ( 10 * 16) + 13 = 173 (Vermelho)
D 8 -> ( 13 * 16) + 8 = 216 (Verde)
E 6 -> ( 14 * 16) + 6 = 230 (Azul)
Agora faremos a famosa regra de trÊs aprendida no ensino fundamental:
Cor Red :registered:
100 sera 255
x sera 173
x = (100*173)/255
x = 67% vermelho (aproximadamente)
Agora a cor Verde (G)
100 sera 255
x sera 216
x = (100*216)/255
x = 84% verde (aproximadamente)
E finalmente a cor Azul (B)
100 sera 255
x sera 230
x = (100*230 )/255
x = 90% azul (aproximadamente)
Mas o código hexadecimal serve para núcleos?
NÉO!!! O cуdigo hexadecimal nгo й usado apenas em cores, ele poderia ser um texto tambйm, por exemplo
4F6C6120706573736F616C
que representa o texto "Ola pessoal".
Como converter ou hexadecimal em textos?
Utilizamos a mesma lógica, da muito trabalho, porém a única coisa que muda é que os números finais da conversão nã o representam mais uma porcentagem de uma cor, mas sim um número que será comparado com a tabela ASCII que terá seu código em decimal e transformado em texto.
Por exemplo vamos pegar os 8 primeiros caracteres do nosso texto hexadecimal (4F6C6120)
logo teremos:
4 F -> ( 4 * 16) + 15 = 79 (O decimal 79 na tabela ASCII representa o caractere "O")
6 C -> ( 6 * 16) + 12 = 108 (O decimal 108 na tabela ASCII representa o caractere "l")
6 1 -> ( 6 * 16) + 1= 97 (O decimal 97 na tabela ASCII representa o caractere "a")
2 0 -> ( 2 * 16) + 0 = 32 (O decimal 32 na tabela ASCII representa o caractere " " ou "espaço/espaço")
Simples nгo é? Deixarei aqui o link de uma tabela ASCII que encontrei na internet para seus estudos Tem também o link que o Bruno13 indicou da tabela ASCII da Wikipedia que está mais completa, segue o link https://pt.wikipedia.org/wiki/ASCII Sendo assim que chegamos ao final do tutorial, posso incrementar mais coisas caso para preciso e se voces tiveram dъvidas estarão a disposiзгo para ajuda-los.
OBS: Pretendo melhorar o visual desse tutorial para deixa-lo mais intuitivo e de melhor compreensгo, nгo o farei agora pois sгo exatamente 00:34 e estou cansado.
Novamente uma boa noite e aproveitem o conteúdo.
Bфnus
Criei um programa em Java que converte cуdigos hexadecimais em RGB, eu admito que ele estб um tanto quanto precбrio, nгo ia disponibilizá-lo e foi um programa que criei enquanto estudava a linguagem. Irei deixa-lo como um bфnus para auxiliar nos seus estudos.
PASTEBIN
Créditos
Mandrack_FreeZe e todos os sites de onde tirei as imagens (****** e Wikipedia)
Para explicar isso do começo vamos primeiro pensar no que vem antes do hexadecimal, o binário.
O código binário é um sistema de base 2 por usar apenas dois caracteres em seu processamento (0 e 1).
Já o código Hexadecimal é um sistema de caracteres em base 16 (pode ser representado por 16 caracteres) e é representado pelo segundo conjunto:
S = {0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F}
Logo o sistema hexadecimal nada mais é que um sistema criado para diminuir a escrita de números grandes (como 165 que em hexadecimal pode ser representado por A5) não sendo necessário representá-lo de modo binario que fica muito mais complexo (0000 0000 1010 0101).
Mais a frente vamos aprender a conversão de Hexadecimal para Decimais e tudo ficará mais claro.
RGB ou as famosas Red - Green - Blue
Vamos comeзar do bбsico. Você já deve ter ouvido falar das famosas cores primárias (as famosas Vermelho, Azul e Amarelo), bem o problema й que o nosso monitor, seja do computador, televisão, câmeras digitais, todos usam as cores Vermelho, Verde e Azul.
A partir da mistura dessas cores é possível ter-se todas as outras cores do mesmo jeito em que Vermelho, Amarelo e Azul.
Mas e o que os cуdigos hexadecimais tem a ver com isso? Simples, o código RGB é representado por decimais que tem sua cadeia de base 10 já o hexadecimal é representado por uma cadeia de base 16 sendo possível representar de mais formas os números decimais, assim como a forma de escrever o código RGB.
Exemplo:
(0,139,139)
Os números citados acima representam respectivamente a quantidade de cor Vermelha (0), Verde (139) e Azul (139) que serão misturados para a obtenção de uma determinada cor.
Jб o cуdigo hexadecimal desses nъmeros й #008B8B .
É muito mais fácil escrever "#008B8B" do que "0, 139, 139". Sendo assim esse ъnico cуdigo estб representando 3 nъmeros.
É importante saber também que o nъmero mбximo no cуdigo RGB serб 255.
Convertendo um código hexadecimal em RGB
O processo de conversão de códigos hexadecimais não é complexo quando é entendido de modo concretizado.
Exemplo do cуdigo de uma cor hexadecimal: #4B0082
Este й o cуdigo responsбvel pela cor "Indigo" (nгo me pergunte de onde vem o nome por favor).
Mas Mandrack, qual o sentido disso??
Bem, eu criei uma metodologia em passos para a conversão do código hexadecimal e que vai esclarecer sua dúvida.
Primeiro passo:
Exclua o "#" do cуdigo, ele nada mais é do que um indicador hexadecimal. Nгo farб diferenзa para nуs neste momento.
Nosso código ficará assim: 4B0082
Segundo passo:
Separe o código em 3 partes de 2 caracteres cada.
Exemplo: 4B 00 82
Agora ficou fácil certo? Usando uma lógica, participe ver o que cada uma dessas 3 divisões representa, logo elas representam respectivamente os cores Vermelho (Vermelho), Verde (Verde) e Azul (Azul).
Mas Mandrack como assim?
Vou explicar os outros passos e tudo vai se encaixar.
Terceiro passo:
Procurar as letras existentes em cada uma das divisões de 2 caracteres.
Using our cуdigo, logo temos uma única letra, o B
4 B 00 82
Agora preste atenção, nos cуdigos hexadecimais existem 6 letras que podem estar presentes, sendo elas A, B, C, D, E e F. Cada letra representa respectivamente um número sendo A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. Para organizar melhor isso vou separar aqui em baixo.
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15
Quarto passo:
Logo após identificar as letras, vamos realizar uma conta processada pelo computador ao passar cada cуdigo para RGB. Bom a conta é feita da seguinte maneira:
(O primeiro caractere * 16) + O segundo caractere
Veja no nosso exemplo abaixo:
4 B -> ( 4 * 16) + 11 = 75 (Red)
0 0 -> ( 0 * 16 ) + 0 = 0 (Verde)
4 8 -> ( 4 * 16) + 8 = 130 (Azul)
Lembrando que o "B" vale 11, por isso utilizamos o valor 11.
Sendo assim temos o nosso cуdigo hexadecimal traduzido para o RGB.
Sabendo disso podemos deduzir o porquê do número maior encontrado na representação RGB й o 255 pois temos a seguinte representação:
#FFFFFF (código da cor branca)
logo:
F F -> ( 15 * 16) + 15 = 255 (Red)
F F -> ( 15 * 16) + 15 = 255 (Green)
F F -> ( 15 * 16) + 15 = 255 (Blue)
Como nуs podemos ler o cуdigo RGB de modo simples?
Sabendo que o número máximo encontrado na cor RGB é o 255 podemos ler-lo utilizando a porcentagem (seria a mesma coisa que o computador faz mas ele é complicado).
Logo temos a cor #ADD8E6 (Azul Claro), vamos a conversa.
A D -> ( 10 * 16) + 13 = 173 (Vermelho)
D 8 -> ( 13 * 16) + 8 = 216 (Verde)
E 6 -> ( 14 * 16) + 6 = 230 (Azul)
Agora faremos a famosa regra de trÊs aprendida no ensino fundamental:
Cor Red :registered:
100 sera 255
x sera 173
x = (100*173)/255
x = 67% vermelho (aproximadamente)
Agora a cor Verde (G)
100 sera 255
x sera 216
x = (100*216)/255
x = 84% verde (aproximadamente)
E finalmente a cor Azul (B)
100 sera 255
x sera 230
x = (100*230 )/255
x = 90% azul (aproximadamente)
Mas o código hexadecimal serve para núcleos?
NÉO!!! O cуdigo hexadecimal nгo й usado apenas em cores, ele poderia ser um texto tambйm, por exemplo
4F6C6120706573736F616C
que representa o texto "Ola pessoal".
Como converter ou hexadecimal em textos?
Utilizamos a mesma lógica, da muito trabalho, porém a única coisa que muda é que os números finais da conversão nã o representam mais uma porcentagem de uma cor, mas sim um número que será comparado com a tabela ASCII que terá seu código em decimal e transformado em texto.
Por exemplo vamos pegar os 8 primeiros caracteres do nosso texto hexadecimal (4F6C6120)
logo teremos:
4 F -> ( 4 * 16) + 15 = 79 (O decimal 79 na tabela ASCII representa o caractere "O")
6 C -> ( 6 * 16) + 12 = 108 (O decimal 108 na tabela ASCII representa o caractere "l")
6 1 -> ( 6 * 16) + 1= 97 (O decimal 97 na tabela ASCII representa o caractere "a")
2 0 -> ( 2 * 16) + 0 = 32 (O decimal 32 na tabela ASCII representa o caractere " " ou "espaço/espaço")
Simples nгo é? Deixarei aqui o link de uma tabela ASCII que encontrei na internet para seus estudos Tem também o link que o Bruno13 indicou da tabela ASCII da Wikipedia que está mais completa, segue o link https://pt.wikipedia.org/wiki/ASCII Sendo assim que chegamos ao final do tutorial, posso incrementar mais coisas caso para preciso e se voces tiveram dъvidas estarão a disposiзгo para ajuda-los.
OBS: Pretendo melhorar o visual desse tutorial para deixa-lo mais intuitivo e de melhor compreensгo, nгo o farei agora pois sгo exatamente 00:34 e estou cansado.
Novamente uma boa noite e aproveitem o conteúdo.
Bфnus
Criei um programa em Java que converte cуdigos hexadecimais em RGB, eu admito que ele estб um tanto quanto precбrio, nгo ia disponibilizá-lo e foi um programa que criei enquanto estudava a linguagem. Irei deixa-lo como um bфnus para auxiliar nos seus estudos.
PASTEBIN
Créditos
Mandrack_FreeZe e todos os sites de onde tirei as imagens (****** e Wikipedia)