Fórum Desmembrando um Numero #205379
09/01/2004
0
eu gostaria de saber se algem pode m ajudar. Meu problema é o seguinte eu tenho um numero qualquer em decimal e tenho que transformalo em binario ....
até ai blz soque depois disso eu tenho que desmembrar-lo..... para que eu possa trabalhar com cada bit desse numero se alguem puder m ajudar agradeço desde ja....
Zumbi
Curtir tópico
+ 0Posts
09/01/2004
Ari Marcolino
Abraços,
Ari Marcolino
Gostei + 0
09/01/2004
Zumbi
mas o que eu preciso mesmo é de ajuda para criar uma função que receba um numero e dentro dela transorme o numero decimal em binario depois devolver um vetor contendo o valor em binario separado em cada parte do vetor....
ok ou ta complicado de entender????
se achar melhor para m dar umas ideias de como desenvolver isso pelo msn o meu é pedroalves82@hotmail.com
flw..
Gostei + 0
09/01/2004
Marcelo Saviski
Isso funcionaria?
TBitSet = set of (B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, .... até B32);
um set é uma forma de manipular conjuntos não é?
var NumeroBinario: TBitSet;
...
NumeroBinario := TBitSet(50); if B1 in NumeroBinario then Bit1Ativo; if B2 in NumeroBinario then Bit2Ativo;
Isso funfa?
ou tambem vc pode fazer assim:
para saber se o bit 15 esta ativo:
if Numero and (1 shl 15) <> 0 then Bit1Ativo else Bit1Desligado;
Gostei + 0
09/01/2004
Zumbi
TBitSet = set of (B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, .... até B32);
essa passagem o que significa..
NumeroBinario := TBitSet(50);
eu utilizo este algoritmo para transformar o numero para binario...
[b:8cdff9d38e]function IntToBin(Value: LongInt;Size: Integer): String;
{Converte uma string em binário}
var
i: Integer;
begin
Result:=´´;
for i:=Size downto 0 do
begin
if Value and (1 shl i)<>0 then
begin
Result:=Result+´1´;
end
else
begin
Result:=Result+´0´;
end;
end;
end;[/b:8cdff9d38e]
mass eu quero que eu passe o num. e ele ja m devolva em um vetor ... ok...
Gostei + 0
09/01/2004
Deus
varString := IntToBin(34); for i := 1 to Length(varString) do if varString[i] = 0 then showMessage(´Bit de numero ´ + IntToStr(i) + ´ - desligado!´) else showMessage(´Bit de numero ´ + IntToStr(i) + ´ - ligado!´);
Ah, e o seu código tem begin / end demais! :) Ele mais enxuto seria:
function IntToBin(Value: LongInt;Size: Integer): String; var i: Integer; begin Result:=´´; for i:=Size downto 0 do if Value and (1 shl i)<>0 then Result:=Result + ´1´; else Result:=Result + ´0´; end;
Abraços, dEUS.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)