Entwickler-Ecke

Windows API - string2bin


Axel - Do 06.03.03 19:34
Titel: string2bin
hi Leute,

ich würde gerne Text in Binär (als 8-stelligen String aus 0 u. 1) umwandeln

a -> 65 -> 10 00 00 10 (LSB first)

jo, merci


torstenheinze - Do 06.03.03 19:38

noch nicht getestet


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
function BinB(b: Byte): string; 
var 
  s: string; 
  i: word; 
begin 
  s := ''; 
  for i := 7 downto 0 do 
    if (b and (1 shl i)) > 0 then 
      s := s + '1' 
  else 
    s := s + '0'; 
  BinB := s; 
end; 

function BinW(w: Word): string; 
var 
  s: string; 
  i: word; 
begin 
  s := ''; 
  for i := 15 downto 0 do 
    if (w and (1 shl i)) > 0 then 
      s := s + '1' 
  else 
    s := s + '0'; 
  BinW := s; 
end; 

function BinL(l: Longint): string; 
var 
  HL: HiLo absolute l; 
begin 
  BinL := BinW(HL.HiWord) + BinW(HL.LoWord); 
end;


DaRkFiRe - Do 06.03.03 19:59


Quelltext
1:
2:
3:
4:
5:
6:
function IntToBin(iValue,iBits:INT64):STRING;
var I:INTEGER;
begin
  FOR I:=iBits TO DOWNTO 0 DO
    Result:=Result+CHR(48+((iValue SHR I) AND (2 SHL I)));
end;


Also Usage: IntToBin(123456,32)


Axel - Fr 07.03.03 09:51

Vielen Dank für die tollen schnellen Antworten !!!
Das hat mir super weitergeholfen.

Ich habe ein Programm geschrieben, um ein SRAM, das ich an COM1 angeschlossen habe, seriell zu beschreiben und zu lesen.

Mit eurer Hilfe konnte ich gestern schon Text drauf speichern.

Beim lesen hatte ich aber Probleme, weil ich in der Hilfe einfach keinen Befehl gefunden habe, mit dem ich x"hoch"y rechnen konnte.
Wie geht das?
Habe jetzt einfach folgendes genommen: exp( y*ln(x) )
{Hat das Mathestudium doch was gebracht} :-)

jo


smiegel - Fr 07.03.03 11:45

Hallo,

axel hat folgendes geschrieben:

keinen Befehl gefunden habe, mit dem ich x"hoch"y rechnen konnte


in der Unit Math, gibt es Funktion die heisst Power.


Axel - Fr 07.03.03 14:17

Hat bei mir gester irgendwie probleme gemacht ?-)
zB Power(2,4) = 155213 und andere ähnlich HOHE Ergebnisse.
naja egal heute ging´s
Danke.