Re: @CB & Perl-Wissende: etwas technisches ;-) Pack und so - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Jurenda (305 Beiträge) am Donnerstag, 17.Januar.2002, 21:37.
    @CB & Perl-Wissende: etwas technisches ;-)

      Hallo an alle Wissenden:

      Ich bastle gerade an einem Converter für URL's herum und bin über einiges Interessantes seitens Perl gestoßen. Weiß jemand von Euch eine Antwort auf diese Fragen?

      Wieso sind Strings keine BitStrings aber problemlos BitStrings gleich Strings?
      Ich habs getestet und festgestellt, daß BitString-Operatinen auf Strings scheitern, jedoch beliebige String-Operationen auf BitStrings durchgeführt werden können??!!??

      Die Shift-Operatoren >> und << funktionieren nicht auf BitStrings ??!!??

      Bei den Operatoren gibt es zwar ein / und ein % aber keine ganzzahlige Division. Irgendwie ist dies unvollständig, denn ein Modulo ohne ganzzahlige Division ist manchmal zu wenig!
      Gibt es eine bessere Möglichkeit als int(a/b)?

      Gruß Jurenda

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 18.Januar.2002, 14:12.
    Re: @CB & Perl-Wissende: etwas technisches ;-)

      So ganz klar is mit das noch nich... Was meinst Du denn mit "Bitstrings"? Also 0 und 1 in Strings gepackt? Wie erzeugst Du die? mit "pack/unpack"?

      Wg. letzterem: Was hast du denn gegen "int(a/b)"? Das is doch genau das Richtige...?

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Freitag, 18.Januar.2002, 23:43.
    Re: @CB & Perl-Wissende: etwas technisches ;-)

      Man kann einen String auch als eine sehr lange Folge von Bits betrachten:

      0x5065726C5065726C; # 'PerlPerl'

      Mehr dazu unter http://www.perldoc.com/perl5.6.1/pod/perlop.html#Bitwise-String-Operators

      Vielleicht ist das nicht gerade die korrekte Bezeichnung, aber ich erahne, daß Perl derartiges intern als Strings behandelt (zumindest teilweise). Daraus hat sich auch meine Frage ergeben.

      Mit "pack/unpack" hätte ich sie ja gerne erzeugt, aber da streikt die bp-operation mask ;-). Zum Glück geht das auch mit:

      my $bitstring='';
      

      Das int(a/b) hat mir eine halbe Stunde Suchen gekostet, denn ich hab in einer Routine stehen gehabt:

      for ($i=0;$i<$a/3;$i++) { ... }
      

      und bei einem Wert von $a=10 hat mein Progi plötzlich anstelle von 9 gleich 10 Elemente bearbeitet. Na klar,
      mein $i ist ja kein Integer! Also nehmen wir halt

      for ($i=0;$i<$a\3;$i++) { ... }
      

      Äh, nö, Perl beherrscht ja keine ganzzahlige Division!
      Also dann:

      for ($i=0;$i<int($a/3);$i++) { ... }
      

      Das schaut irgendwie schlimm aus.

      Und ganzzahlige Arithmetik läßt ja die bp-operation mask nicht zu, denn sonst wäre ja ein

      use integer;

      die Lösung!

      Gruß Jurenda

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Samstag, 19.Januar.2002, 07:47.
    Re: @CB & Perl-Wissende: etwas technisches ;-) Pack und so

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 19.Januar.2002, 20:38.
    Re: @CB & Perl-Wissende: etwas technisches ;-)

      Letztendlich kann man alles "als eine sehr lange Folge von Bits betrachten" - bzw. IST alles eine sehr lange Folge von Bits ;-)

      Ja, das mit dem pack/unpack muss ich wohl mal freigeben, ich hatte es damals wohl vergessen ;-) Der Grund warum pack/unpack gesperrt ist übrigens: "pack unpack -- can be used to create/use memory pointers" - meiner Meinung nach eine sehr theoretische Gefahr... ;-)

      Aber ich weiss immer noch nich, was Dir an dem "int" missfällt - dafür gibts den Befehl doch! ;-)

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Samstag, 19.Januar.2002, 20:57.
    Re: @CB & Perl-Wissende: etwas technisches ;-)

      Das mit dem int ist nur eine gewisse "Gewohnheit" von Pascal:
      var i: integer; oder so ähnlich und man braucht nicht mehr darüber nachdenken, obs da irgend welche "zerdrückte" Nachkommastellen gibt, die man beachten muß.

      Lang ist es her (fast 15 Jahre), aber ich habe mich mal sehr intensiv mit diskreter Mathematik beschäftigt (Netze, Bäume, Wälder und so.....) und bin von damals noch das entsprechende Denken gewöhnt! Wenns um Bits und Bytes geht, dann vergesse ich halt immer, das da auch noch floating point und so was gibt ;-)

      "int" ist halt seeeehhhhr mühsam, wenn man nur ganzzahlige Mathematik braucht oder brauchen kann!

      Gruß Jurenda

      PS.: Mir fällt gerade was ein: ich hab doch mal nen Bug mit ganzen Zahlen aufgedeckt, den Du damals ganz rasch beseitigst hast, danke nochmals!!!!
      Sorry, ich liebe diese ganzen Zahlen halt ;-)
      Äh, stopp, vorher kommt noch meine Frau!

     Antworten


     
 Liste der Einträge von 51451 bis 51601:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.09s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!