Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

[Artigo] Sistema Hexadecimal, Decimal e Binário

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    [Artigo] Sistema Hexadecimal, Decimal e Binário

    Olá a todos...

    Nesse post vou falar sobre os sistemas de numeração. Darei ênfase aos sistemas Decimal, Hexadecimal e Binário, pois são os mais utilizados na programação e na informática em geral.
    Esse post ajuda a complementar o meu guia de Assembly, que vocês podem encontrar aqui no GH mesmo...na área de Assembly, logicamente.

    E como na maioria dos meus posts, este envolve matemática xDDD

    Vamos lá...ja enrolei demais...

    O Que São Sistemas de Numeração?
    Não podemos definir um sistema de numeração sem antes definirmos o que é um numeral. Um numeral é um símbolo ou conjunto de símbolos que representam um determinado número. Podemos ter 2 ou mais numerais que indiquem o mesmo número, por exemplo, para representar o número 5, podemos simplesmente escrever "5" ou podemos escrever "V", tanto o símbolo "5" quanto o símbolo "V" indicam a mesma quantidade, isto é, o mesmo número.
    Um sistema de numeração é um sistema utilizado para organizar a representação dos números através de numerais(símbolos) e torná-la mais compreensível e universal.

    Bases dos sistemas de numeração
    Todos os sistemas de numeração possuem uma base, por exemplo, o sistema decimal tem base 10, o hexadecimal tem base 16 e o binário tem base 2. A base de um sistema de numeração indica quantos símbolos únicos disponíveis temos para formar os números. Para ficar mais claro, tomemos o sistema decimal como exemplo: o sistema decimal(que é o que utilizamos no noddo dia-a-dia) possui base 10, pois possui 10 símbolos para representarmos os números, os símbolos são: 0,1,2,3,4,5,6,7,8 e 9. No sistema hexadecimal, a base é 16, portanto, ele tem 16 símbolos disponíveis: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E e F. E no binário, 2 símbolos: 0 e 1.

    O Sistema Hexadecimal
    Bom...não vou falar sobre o sistema decimal, pois todos nós já estamos (pelo menos éramos pra estar) familizarizados com ele, usamos ele a todo instante!
    O sistema Hexadecimal, também conhecido somente como "hexa", como eu já disse anteriormente(e quero que o tópico fique grande por isso vou repetir...brincadeira, é claro :cool: ) trabalha com a base 16 e, portanto, possui 16 símbolos disponíveis. E agora a pergunta que não quer se calar e não te deixa dormir: O que é aquele A? e aquele B? e o C? e o D? e o F??? :confused:
    O problema é que só utilizamos 10 símbolos para representar números, mas o hexadecimal precisa de 16, por isso, usamos letras para representar os números depois do 9...
    "Ahhhh Black-Hat, então o A é o 10, o B é o 11, o C é o 12, o D é o 13, o E é o 14 e o F é o 15?????" Sim! é isso mesmo.

    O Sistema Binário
    Ah sim...o sistema binário...
    Não tem muito o que falar sobre ele nessa pequena introdução. Como já disse antes, ele possui base 2 e os símbolos disponíveis são 0 e 1.
    Vou aproveitar pra esclarecer uma coisa, acho que a maioria já sabe, mas 1 bit pode ser um "0" ou um "1" e 1 byte são 8 bits, ou seja, 1 byte são 8 zeros e uns.



    Conversões:
    Muito bem...até agora só vimos conceitos e teoria, um tanto quanto chato, nada como um pouco de matemática prática para melhorar...
    É possível fazer conversões entre os sistemas de numeração, mas é claro que isso envolve matemática. Pra quem odeia matemática e prefere decorar akeles longos e entediantes parágrafos de história, essa parte pode ser uma tortura, mas é necessária. Até quando você vai usar programinhas "mágicos" que convertem de Hexa pra Decimal e etc??? Já está na hora de fazer o seu e se você já fez copiando e colando o código-fonte, está na hora de entender como tudo funciona e como o windows faz pra converter esses números. Afinal, você pode se deparar com uma situção na qual você não tenha o seu "programinha mágico" e tenha que converter... daí, meu amigo, se você não souber...

    Decimal para qualquer outra base:
    Vamos usar como exemplo, número 666 (decimal) (Mua hua hua...)
    Para convertermos um número decimal para qualquer outra base, devemos dividir pelo número da base até que o dividendo seja menor que o número da base. Depois, pegamos os restos "debaixo para cima" e teremos o número.
    "Meu Deus, Black-Hat, vou parar de ler isso!!!!! Não entendi nadaa!!!! :mad: "
    Calma, vou exemplificar e você vai entender o "blá blá blá"...

    Exemplo:
    Pegando como exemplo o 666 em decimal, vamos convertê-lo para hexadecimal(base 16), seguindo o "blá blá blá" que escrevi ali em cima...

    Primeiros dividiremos o número pela base(16) até que o dividendo(numero que está sendo dividido) seja menor do que a base, acompanhe:

    666 / 16 = 41, Resto 10
    41 / 16 = 2, Resto 9
    2 / 16 = 0, Resto 2 -> o dividendo se tornou menor que o número da base ( 2 < 16 ), neste caso, o resultado da divisao é 0 e o resto é o próprio dividendo.

    Agora, o "blá blá blá" diz para pegarmos os restos "debaixo para cima" e formarmos o número, vamos lá:

    O último resto é o 2, depois o 9 e lá em cima temos o 10. Agora basta juntarmos esses símbolos e teremos o número em hexa.
    "Ahhh, entendi, Black-Hat, então o número é 2910, né?"
    Infelizmente não, lembre-se que em hexa o 10 equivale a A, então onde o resto deu 10, substitua por A e então junte tudo...
    "HAHA....agora eu sei...o número 666 em hexa é 29A!!!!!!!!!!!!!!!!!!"
    Exato!

    Você pode utilizar esse mesmo método para converter de decimal para binário, decimal para octal e assim vai....decimal para qualquer coisa =)
    Só para treinar, vou transformar agora 666 em binário(base 2):
    666 / 2 = 333, resto 0
    333 / 2 = 166, resto 1
    166 / 2 = 83, resto 0
    83 / 2 = 41, resto 1
    41 / 2 = 20, resto 1
    20 / 2 = 10, resto 0
    10 / 2 = 5, resto 0
    5 / 2 = 2, resto 1
    2 / 2 = 1, resto 0
    1 / 2 = 0, resto 1
    Agora pegando os restos debaixo pra cima, temos: 1010011010
    E esse é o número 666 em binário ;D

    De qualquer outra base para decimal:
    HAHA...vamos complicar um pouco mais x)
    Para convertermos um número de uma outra base qualquer (chamarei a base de "b") para a base 10 (decimal), devemos escrever o número, depois multiplicarmos cada algarismo do número pela base à qual pertence o número e, da direita para a esquerda, começando do 0, elevarmos as bases, acrescentando 1 em cada.
    "CHEGA, Black-Hat, desisto de ler isso! Tchau!"
    Tá vendo porque história não é legal? Um monte de palavras a serem decoradas e difíceis de serem interpretadas...
    Vamos à prática que isso fica muuuito mais fácil =)

    Tomemos como exemplo o 29A (que você já sabe que é o 666 em decimal).
    Segundo o "blá blá blá 2", devemos escrever o número, façamos isso:
    Código:
    2                 9                  A
    Muito bem, escrevemos ele, com um pouco de espaço entre os algarismos. Agora, o "blá blá blá 2" nos manda multiplicar cada algarismo pela base à qual o número pertence, como o número está na base 16, multiplicaremos por 16, vejamos:

    Código:
    2x16            9x16              10x16  (lembre-se de que o A é 10)
    Agora, o todo-poderoso "blá blá blá 2" nos manda elevar as bases que estão multiplicando aos seus respectivos expoentes, da direita para a esquerda, começando do 0 e acrescentando 1. Vou usar o símbolo ^ para inidicar "elevado a", então, temos:

    Código:
    2x16^2        9x16^1          10x16^0
    Observe que SÓ o "16" deve ser elevado ao seu determinado expoente e nao o conjunto todo...
    Agora faça as continhas xD

    Código:
    2x256         9x16               10x1

    Código:
    512            144                 10
    Agora simplesmente some 512, 144 e 10:
    Código:
    512     +       144    +       10   =  666
    Pronto! aí está o número na base 10 =)

    Você pode usar este método para converter de qualquer outra base para a base 10... xD


    Conclusão:
    MEU DEUS! E ainda tem conclusão??????

    Sim, tem...mas é rapidinha ;D
    Bom...espero que tenham gostado, deu um pouquinho de trabalho para fazer e tudo o que está aqui é de autoria minha, como sempre. Não gosto de copiar e colar nada, afinal, se for pra eu copiar e colar é mais fácil eu postar o link do site original. =P
    Caso alguém vá copiar isso coloque os créditos, caso contrário algo pode acontecer...(por que você acha que usei o número 666? Mua hua hua!)

    Espero que alguém tenha aprendido algo e que esse tópico seja útil.
    E se você gostou, clique em "Obrigado", não dói nada.

    Flws a todos
    Black-Hat.
    Similar Threads

  • Font Size
    #2
    10!

    Belo Topico..

    Parabens!

    Comment


    • Font Size
      #3
      É complicado entender, mais valeu ótimo tópico.

      Comment


      • Font Size
        #4
        Bem, nao li o tutorial entao nao sei se o que vou falar voce ja disse.. Mas caso disse, serve para reforçar.

        O sistema de numeração base 16, ou Hexadecimal ( HEXA ) foi criado para facilitar a comunicação entre seres humanos. Por exemplo, quando voce instala via radio na sua casa, o tecnico ve o seu MAC ( que sao escritos em HEXA ) e passa para a empresa liberar o sinal ate voce.

        Agora imagine o tecnico falando isto em sistema binario... Imagine a cena:

        - Tec: Olha, o numero é : 1001011010101101010010101010100101010111101010.
        - Atendente: Pera.. parei no 5 numero. Ve se eu acertei: 10011...

        [...]

        Tipo, no exemplo acima ja citei que ela tinha errado rsrs. É mais ou menos assim que funciona.

        Abraços

        Comment


        • Font Size
          #5
          puttz, topico 100% explicativo realmente muito bom

          \O
          ~# Criado pela [IN]Segurança #~

          Comment


          • Font Size
            #6
            topico 100% explicativo realmente muito bom ²

            otimas comaprações para o raciocinio da coisa e bem comedia... gruda a gente lendo
            sigpic

            Comment


            • Font Size
              #7
              Parabéns mano pela sua dinâmica de estudo.

              Estudo sistemas de numeração e acho uma matéria enjuada (melhor do que História hehehe) porém logo que aprende a gente fica querendo coverter tudo para tudo... hehehehe

              Gostei do conteúdo muito bem explicado as conversões...

              Comment


              • Font Size
                #8
                Black, ótimo tópico cara. Pra quem sempre preferiu o português ou "gravar enormes parágrafos de história" comecei a me interessar sobre esses sistemas *-* , e não foi só isso, você explicou bem. Parabéns

                Comment


                • Font Size
                  #9
                  Muito massa o topico vou só repassar aki pra entender melhor

                  Comment


                  • Font Size
                    #10
                    Realmente mto bom Black-Hat
                    merece um Thanks !
                    sigpic
                    Faça parte você também pela campanha da vida: Eu cuido da Minha, você cuida da sua!

                    Comment


                    • Font Size
                      #11
                      How often does an iPhone freeze after jailbreaking?

                      I want the iphone, but I don't want to get the data package since almost everywhere I go has wifi anyway and it would not be worth the $30 a month. Can I get the iphone, sign up for the package and then cancel it soon after? Is there a cancellation fee or anything? Can anyone suggest a solution that would avoid this problem? Thanks!



                      ________________
                      Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

                      Comment


                      • Font Size
                        #12
                        nota 10 cara..
                        muito bom o topico..
                        eu ja tenho uma noção desses sistemas, mas na forma que voce explicou ficou facim de entender

                        valeu

                        Comment


                        • Font Size
                          #13
                          Aeee, lucas sempre postando coisas boas.

                          I WILL CODE C# FOR FOOD !

                          Comment


                          • Font Size
                            #14
                            Parabéns irmao muito bom

                            Comment


                            • Font Size
                              #15
                              isso num funfo não manow O_o vá em qualquer tradutor de hex por exemplo esse Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... não fica correto ??? é assim mesmo ??? oO WTH !!!! tipo 10=A mais nos tradutores programas, etc.. aparece 41 "EX" =\ Help !!!!

                              Comment

                              X
                              Working...
                              X