Schrift
[thread]8766[/thread]

prüfen ob bit gesetzt ist.

Leser: 1


<< >> 7 Einträge, 1 Seite
kale_1990
 2007-02-19 17:10
#74391 #74391
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
hallo, ich wandle eine dezimalzahl in eine binärzahl und möchte dann prüfen ob z.b. das 1ste oder 2te usw. bit gesetzt ist.
wie mach ich das? (?das prüfen?, das wandeln kann ich)
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
GwenDragon
 2007-02-19 17:20
#74392 #74392
User since
2005-01-17
14761 Artikel
Admin1
[Homepage]
user image
In dem du eine binäre Undverknüfung & mit einer Bitmaske machst.
Code: (dl )
1
2
3
4
5
6
$zahl = 0xFC; # Zahl FCh (hex)
$bitnummer = 2; # Bit 2 = 00000100
$bimaske = 1 << $bitnummer;
print "Bit $bitnummer ist ";
if ($zahl & $bitmaske) { print "gesetzt" }
else { print "nicht gesetzt"}


Geht auch kürzer, ist aber so anschaulich.\n\n

<!--EDIT|GwenDragon|1171898830-->
kale_1990
 2007-02-19 17:34
#74393 #74393
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
hallo, und danke schon mal, nur jetz steh ich auf der leitung...ich versteh das irgendwie nicht
könntest du es bitte so programmieren
das es prüft ob das 3te bit (also für dezimal =4) gesetzt ist wenn nein soll es x=1; machen ansonsten x=0;
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
kale_1990
 2007-02-19 17:37
#74394 #74394
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
in welcher variable steht das zu prüfende bit,die gesamte zahl also alle bits?
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
betterworld
 2007-02-19 18:04
#74395 #74395
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
[quote=kale_1990,19.02.2007, 16:37]in welcher variable steht das zu prüfende bit,die gesamte zahl also alle bits?[/quote]
Bei dem Code von GwenDragen steht die gesamte Zahl in $zahl und die Nummer des zu prüfenden Bits in $bitnummer.

Umwandeln in eine Binaerzahl, wie Du es in Deinem ersten Posting geschrieben hast, musst Du nicht. Das macht Perl sowieso, wenn es mit den Zahlen rechnen will.

Schau Dir am besten mal & und << in perlop an.\n\n

<!--EDIT|betterworld|1171901155-->
kale_1990
 2007-02-20 09:11
#74396 #74396
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
hey, ja ich habs gestern vor feierabend noch verstanden. das "$zahl = 0xFC" hat mich verwirrt...
danke nochmal
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
vayu
 2007-02-20 09:27
#74397 #74397
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
kannst dir deine Bitmaske auch ohne geshifte selber schreiben, wenn du das besser verstehst :)

my $bitmaske = 0b00000100;
<< >> 7 Einträge, 1 Seite



View all threads created 2007-02-19 17:10.