Ir para conteúdo
Fórum Script Brasil
  • 0

Análise De Bits


Guest Burnk

Pergunta

E aii galera,

Queria uma ajuda sobre analise de bits, no meu programa eu faco um leitura de um byte do clp e tenho que verificar bit a bit do byte se ele está em 1 ou em 0, pra ligar ou desligar uma instrucao, eu fiz uma analise por operadores logicos so que a leitura fica mtoo lenta :( , tava tentando usar o bitarray so que sem mtoo sucesso alguém sabe um rapido de analisar esses bits??

Vlw

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Queria uma ajuda sobre analise de bits, no meu programa eu faco um leitura de um byte do clp e tenho que verificar bit a bit do byte se ele está em 1 ou em 0, pra ligar ou desligar uma instrucao, eu fiz uma analise por operadores logicos so que a leitura fica mtoo lenta :( , tava tentando usar o bitarray so que sem mtoo sucesso alguém sabe um rapido de analisar esses bits??

Quantos bits são? E que tipo de "instruções" você chama para cada um deles?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

então Gray nun é so a leitura disso, eu to lendo uns 108 offsets do clp no timer, o que consome um poco de tempo , mas como eu nun consegui ainda indexar pelo metodo de stream do clp por enquanto to diminuindo o tempo por lacos e outras estruturas de repeticao.

já no caso dos bits funciona normalmente como eu faco so que eu queria fazer uma analise de bits realmente eu faco assim olha:

B=BinRead.ReadInt32();(//escreve a leitura do clp na variavel como integer)

if ((B&1)&1)//verificacao se o primeiro bit está setado como true

button1.text="L";

else

button1.text="D";

essa verificacao é igual para o resto dos bits so mudando o numero verficado

pro segundo bit é com o numero 2, pro 3 é com o numero 4, pro 4 é com numero 8 depois 16, 32, 64, 128,256,512 etc

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, eu criei a seguinte função aqui:

        public bool[] ToBinary(int valor)
        {
            int resto;
            ArrayList a = new ArrayList();

            do
            {
                resto = valor % 2;
                a.Add(Convert.ToBoolean(resto));
                valor = valor / 2;
            } while (valor > 1);
            a.Add(Convert.ToBoolean(valor));
            if (a.Count < 8)
                a.AddRange(new bool[8-a.Count]);

            a.Reverse();

            return (bool[])a.ToArray(Type.GetType("System.Boolean"));
        }
Ela recebe um inteiro e me retorna um array de Booleans, sendo cada elemento um bit. Depois, utilizei ela para mostrar os valores nos botões:
            int valor = 3; // VALOR A SER LIDO!!!
            bool[] bits = ToBinary(valor);

            Button[] botões = {btnBit0, btnBit1, btnBit2, btnBit3, 
                               btnBit4, btnBit5, btnBit6, btnBit7};

            int i = 0;

            foreach (Button botão in botões)
            {
                if (bits[i])
                    botão.Text = "L";
                else
                    botão.Text = "D";
                i++;
            }

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...