Also wenn es nur um die Ideen dazu geht, will ich hier mal ein paar Worte dazu verlieren:
Nett wäre eine weitere Spalte mit den Binärwerten ala
01001110 00000000 00000000 00000000 4E 00 00 00 N . . .
in der bei der Auswahl alle anderen zugehörigen Dastellungen markiert sind, etwa so
010011
10 00000000 00000000 00000000 4
E 00 00 00
N . . .
und natürlich für jede Darstellung die Editierbarkeit gegeben ist, vielleicht auch noch eine Dezimaldarstellung. Das ganze müsste man dann entweder komplett selbst zeichnen oder als richtext ausgeben. Das Umwandeln sollte kein Probelm darstellen, die Binärumwandlung kann man als mit inline deklarierte Assemblerroutine erledigen.
Hab dir mal die Wandelroutine gebastelt:
Delphi-Quellcode:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
procedure ByteToBinary(stringstart: Pointer;
const b: Byte);
Register;
// stringstart -> EAX, b -> EDX
label bit0_0 , bit1_0 , bit2_0 , bit3_0 , bit4_0 , bit5_0 , bit6_0 , bit7_0;
asm
push EBX
mov EBX, $30303030
rcl
DL, 1
jnc bit7_0
or EBX,$00000001
bit7_0: rcl
DL, 1
jnc bit6_0
or EBX,$00000100
bit6_0: rcl
DL, 1
jnc bit5_0
or EBX,$00010000
bit5_0: rcl
DL, 1
jnc bit4_0
or EBX,$01000000
bit6_0:
mov [EAX],EBX
mov EBX, $30303030
rcl
DL, 1
jnc bit3_0
or EBX,$00000001
bit3_0: rcl
DL, 1
jnc bit2_0
or EBX,$00000100
bit2_0: rcl
DL, 1
jnc bit1_0
or EBX,$00010000
bit1_0: rcl
DL, 1
jnc bit0_0
or EBX,$01000000
bit0_0:
add EAX, 4
mov [EAX],EBX
pop EBX
end;
var outstr:
string;
begin
outstr :='
######## ######## ######## ######## ';
ByteToBinary(@outstr[1],$F0);
ByteToBinary(@outstr[10],$0F);
ByteToBinary(@outstr[19],$66);
ByteToBinary(@outstr[28],$AA);
outstr := outstr + IntToHex($F0,2) + '
'
+ IntToHex($0F,2) + '
'
+ IntToHex($66,2) + '
'
+ IntToHex($AA,2) + '
';
outstr := outstr + '
'+'
' + Chr($F0)+'
'+ Chr($0F)
+'
' + Chr($66)+'
'+ Chr($AA);
writeln(outstr);
readln;
end.