Thread Archive-Flag (Win32::File): Archive-Flag löschen
(26 answers)
Opened by weismat at 2003-08-27 00:31
tja...
bit-operationen braucht man oft, um verschiedene binaere format zu lesen... dabei hat man in einem octet (byte) 8 bits 00000000 => kein bit ist gesetzt 00000001 => 1. bit ist gesetzt 00000010 => 2. bit ist gesetzt 00000100 => 3. bit ist gesetzt 00001000 => ... da man so eine bit-zahl auch im dezimalensystem darstellen kann, kann man nun z.B. mit Hilfe des & operators testen, ob und welche bits gesetzt sind... ($byte & 1) ergibt immer dann einen Wert != 0, wenn das 1. bit gesetzt ist, bsp.: 00000001 00000011 00000101 00001001 00100001 etcpp. ($byte & 4) hingegen, prüft jetzt nicht, ob dass 4., sondern ob das 3. bit gesetzt ist, weil 4 im binaersystem 100 also 00000100 mit 255 kann man dann testen, ob alle bits gesetzt sind, denn 255 <=> 11111111 um nun ein octet zu erzeugen, dass verschiedene bits gesetzt hat, kann man folgendes tun: $byte = 3 | 11 | 114 $byte sieht binaer jetzt so aus: 01111011 um jetzt sicher zustellen, dass das 1. und 2. bit nicht gesetzt ist, kann man den ~-operator verwenden $byte = 3 | 11 | 114 $byte = $byte & ~3 binaer sieht das so aus: $byte <=> 01111011 3 <=> 11 ~3 <=> 00 $byte <=> 01111000 Nix verstanden, oder? :) |