GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Qui 18 Abr 2024, 18:28

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39


Hexadecimal

2 participantes

Ir para baixo

Hexadecimal Empty Hexadecimal

Mensagem por luiz_eldorado Seg 30 Jan 2012, 20:29

Olá pessoal, eu estou com uma duvida aqui, como é que faz pra tranformar numeros em hexadecimal e vice-verça? Quando eu digo em hexadecimal, quero dizer uma string, pois se usarmos números normais (como $FF00FF) o GM iria traduzir para numero normal.
Eu já achei na net como fazer isso, mas você tem que fazer a conta. Eu queria alguma coisa em GML.
Pra quem não sabe, para converter é preciso isto:
Código:
num/16=num > resto = val1
num/16=num > resto = val2
E assim por diante até que o num vire 0. Aí eu pego os restos, transformo pra hexa (tipo, 10 = A, 11 = B, etc...)
Eu vou colocando os restos em ordem contraria:
hexa = val3 + val 2 + val 1
Atenção, não é pra somar eles, é só pra juntar xD
Até mais!
luiz_eldorado
luiz_eldorado

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 30/07/2011
Reputação : 47
Número de Mensagens : 928
Prêmios : Hexadecimal Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://luizpontes.tk/

Ir para o topo Ir para baixo

Hexadecimal Empty Re: Hexadecimal

Mensagem por saim Qui 23 Fev 2012, 10:26

Wow, demorei muito mais do que deveria pra responder essa. É que toda vez que eu estava chegando perto de testar a idéia, acontecia alguma coisa.
Basicamente, você vai dividir por 16 e arredondar pra baixo, até o número dar zero. A cada vez que fizer isso, pegue o RESTO da divisão, multiplique por 16 e armazene.
Junte todos os restos multiplicados por 16, transforme em letras se for preciso e pronto.

Aqui, um script que eu fiz usando mod e div, o que elimina a trabalheira de re-multiplicar por 16 e de arredondar pra baixo.

Código:
//pede o número a ser convertido
numero = -1;
while(numero < 0){
   numero = real(get_string("digite um número", "0"));
   }

n = 16; //a base numérica pra qual o decimal será convertido (pode ser alterado pra 2, se quiser uma conversão pra binário ou mesmo 10, se quiser testar o script)
resultado = ""; //uma string vazia
while(numero > 0){
   val = numero mod n; //a última unidade do número atual na nova base
   numero = numero div n; //reduz o número atual pra próxima iteração
   if (val < 10){ //se existir caractere cardinal para o número
      resultado = string_insert(string(val), resultado, 0); //insere esse caractere no começo da string
      }
      else{ //se carecer de uma letra do alfabeto
         resultado = string_insert(chr(val+55), resultado, 0); //insere a tal letra no começo da string
         //(A equivale a 10 e, na tabela ascii, a 65, por isso somamos 55)
         }
   }
show_message(resultado)
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Hexadecimal Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Hexadecimal Empty Re: Hexadecimal

Mensagem por luiz_eldorado Qui 23 Fev 2012, 22:54

Sabia que so o saim responderia isso xD
Acho que o unico problema meu era de pegar o resto da divisao (nao sei do operador mod), sei la, talvez dividir 1 por 16 multiplicar pelo decimal do numero e... Chega.
(pode ser alterado pra 2, se quiser uma conversão pra binário ou mesmo 10, se quiser testar o script)
Wow, agora da pra converter ate binario? Nossa que poderoso o script! Com certeza estara nos creditos saim! xD
Flws!
luiz_eldorado
luiz_eldorado

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 30/07/2011
Reputação : 47
Número de Mensagens : 928
Prêmios : Hexadecimal Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://luizpontes.tk/

Ir para o topo Ir para baixo

Hexadecimal Empty Re: Hexadecimal

Mensagem por saim Sex 24 Fev 2012, 08:54

luiz_eldorado escreveu:Sabia que so o saim responderia isso xD
É que só eu fico garimpando perguntas velhas que ainda não foram respondidas... Action Room Previous
luiz_eldorado escreveu:Wow, agora da pra converter ate binario? Nossa que poderoso o script!
Nem tanto. Conversão entre bases sempre usa a mesma teoria, então o script ser flexível não é mérito meu, mas da matemática em si.
Se quiser mesmo usar outras bases, sugiro entrar com a base como argumento. Aí, sim, o script ficará flexível.
luiz_eldorado escreveu:Com certeza estara nos creditos saim!
Não precisa, mas fico agradecido!Happy

Como o tópico foi resolvido, está sendo trancado. Se quiser reabrir, entre em contato com a moderação.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Hexadecimal Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Hexadecimal Empty Re: Hexadecimal

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos