Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Konwersja bindec() z wynikiem w postaci ciągu
elektromis
post 1.06.2024, 12:49:45
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.08.2019

Ostrzeżenie: (0%)
-----


Witam mam takie pytanie/ problem pobieram z zegara sterujacego oswietleniem liczbe DEC gdzie dni tygodnia sa w postaci binarnej np, jesli jakis program ma dzialac od Poniedzialku do Piątku to otrzymuje wartosc 31 ( suma 1 (pn) + 2 (wt) + 4 (śr) + 8 (cz) + 16 (pt). Bindec(31); zwróci mi 00011111
Pytanie? bindec(Liczbabinarna)[nr bitu ] = zwraca prawda lub fałsz; Czy da sie zrobic cos takieg bindec(Liczbabinarna) = ciąg 1,2,3,4,5 w postaci dwoch trzech linijek tak aby nie bawiac sie w matematyke
Prosze o porade. Dziękuje

Ten post edytował elektromis 1.06.2024, 13:14:48
Go to the top of the page
+Quote Post
trueblue
post 1.06.2024, 18:43:37
Post #2





Grupa: Zarejestrowani
Postów: 6 767
Pomógł: 1824
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. $a=17;
  2. for($i=0;$i<5;$i++){
  3. if($a & pow(2,$i)) echo ($i+1);
  4. }


--------------------
Go to the top of the page
+Quote Post
Salvation
post 2.06.2024, 13:04:53
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 70
Dołączył: 15.07.2014

Ostrzeżenie: (0%)
-----


Skoro masz wartość binarną, to sprawa prosta...
  1. $bin = '00011111';
  2.  
  3. foreach (str_split(strrev($bin)) as $i => $char) {
  4. if ('1' === $char) {
  5. echo $i + 1;
  6. }
  7. }

Można dołożyć jeszcze słownik, żebyś wiedział co oznaczają zwrócone liczby. W tym przypadku 1 - 5.

Ten post edytował Salvation 2.06.2024, 13:19:26
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2024 - 12:47