Schrift
[thread]7420[/thread]

binär-daten

Leser: 1


<< >> 9 Einträge, 1 Seite
master
 2005-11-02 15:30
#59598 #59598
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
Folgendes problem
$d = 01010101;

$d soll jetzt aber binär sein... wie geb ich einer variable binär einen wert? möglichst schnell und ohne module..
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
Gast Gast
 2005-11-02 15:33
#59599 #59599
perldoc perldata, such nach "binary".
master
 2005-11-02 15:40
#59600 #59600
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
habs glaub... aber wie mach ich das ganze wieder rückgängig?

$d = 0b01010101; #binär
print $d; #binärwert als String im format 0101010 ausgeben..
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
pKai
 2005-11-02 15:50
#59601 #59601
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
D:\>perl -e "$d=0b01010101; printf qq(%08b),$d"
I sense a soul in search of answers.
Dubu
 2005-11-02 15:50
#59602 #59602
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Code: (dl )
printf "%b", $d;
master
 2005-11-02 15:53
#59603 #59603
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
SUPER! danke :-)
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
master
 2005-11-02 16:46
#59604 #59604
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
Und hier ein weiteres Problem:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
$b1=0b_10101010;
#$b2=0b_01010101;

$B1=pack("C",85);
$B2=pack("C",170);
$B3=pack("C",0);

printf "%b\n",$b1;

printf "%b\n",$B1;
printf "%b\n",$B2;
printf "%b\n",$B3;


Ausgabe:

10101010
0
0
0
--------------------

bei $b klappts... doch die B1-B3 werden anscheinend trotz pack keine echten binär daten :-(

Im Prinzip will ich eine Int-Zahl, binär speichern..\n\n

<!--EDIT|master|1130942866-->
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
Taulmarill
 2005-11-02 17:17
#59605 #59605
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
wenn du integer binär packen willst, musst du "i" oder "I" nehmen, siehe perldoc -f pack

edit:
so funktionierts auch mit den chars:
Code: (dl )
perl -e'$foo = pack "C", 65; print unpack("B*",$foo), "\n"'
\n\n

<!--EDIT|Taulmarill|1130945144-->
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Taulmarill
 2005-11-02 17:31
#59606 #59606
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
ich hab noch mal meine glaskugel rausgeholt und befragt und die sagte mir, dass du warscheinlich was anderes meinst :)
über den ansatz mit pack hab ich wohl zu kompliziert gedacht. versuch mal das hier:
Code: (dl )
perl -e'$foo = 256; printf( "%b\n", $foo )'
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
<< >> 9 Einträge, 1 Seite



View all threads created 2005-11-02 15:30.