none
Ler byte a byte e passar para uint RRS feed

  • Pergunta

  • Estou tentando fazer um programa que seria como um Decompilador

    eu tenho que ler um arquivo binário byte a byte, e então montar uma instrução do mips.

    eu consigo ler mas quando vou converter para uint para poder trabalha a movimentação dos bits usando (<< , >> ) não faz sentido pelo valor do binário.

    queria saber como que fica um arquivo que foi convertido do binário... 

    se eu obter o valor de cada byte do array byte lido em decimal fica assim: 1,32,64,32.

    se eu converter utilizando a função abaixo da esse resultado:01-20-40-20 ( hexa ) os traços faz parte.esses valores é o mesmo valor do binário.

    string code = BitConverter.ToString(buffer, 0);//  code fica com esse valor = 01-20-40-20 ( hexa ) os traços faz parte.

    mas eu tenho que utilizar uint, se eu converter utilizando a função a baixo da esse valor  = 541073409  o que não faz sentido pelo binário.

    uint code2 = BitConverter.ToUInt32(buffer, 0); // code2 fica com esse valor = 541073409  

    PS: sou novo no C#, eu escolhi essa linguagem para fazer esse trabalho, estou a 3 dias lendo documentação e perguntas feitas aqui, me desculpe se não fui claro o bastante , estou desesperado, estou chegando no limite do tempo.. obrigado desde já.

    segunda-feira, 7 de outubro de 2013 18:09

Respostas

  • Consegui resolver, vou deixar a resposta aqui , talvez alguém tenha o mesmo problema.

    quando eu convertia o byte para uint32 ele gerava um numero ao contrario, o certo seria vbyte[4] = "1,32,64,32" = 18890784 na base 10, na base 2 = 00000001(1) 00100000(32) 01000000(64) 00100000(32), 32bit = 4byte, mas quando convertia ele gerava o numero

    541073409 base 10 , na base 2 = 00100000(32) 01000000(64) 00100000(32) 00000001(1) 

    felizmente após dois dias estudando , pesquisando documentação e com a ajuda da calculadora do computador modo programação consegui resolver, não foi tempo perdido porque aprendi muito de c# tentando resolver esse problema e espero que sirva para alguém no futuro xD~~ 

    terça-feira, 8 de outubro de 2013 04:59