Krótka piłka:
Jak wygenerować liczby binarne od 0 do 127 (w tablicy bool[128][7])?
Ktoś ma jakiś pomysł?
Wersja do druku
Krótka piłka:
Jak wygenerować liczby binarne od 0 do 127 (w tablicy bool[128][7])?
Ktoś ma jakiś pomysł?
Ale jak wygenerować? Owszem mając tablicę 7 booli które byłyby bitami, można wygenerować liczby od 0 do 127, aby skonwertować na decymalny ( pseudokod ):
Gdzie oczywiście tablica[0] to most significant bit a tablica[6] least significant bit.Kod:int liczba = 0;
liczba += tablica[0] * 2^6;
liczba += tablica[1] * 2^5;
liczba += tablica[2] * 2^4;
liczba += tablica[3] * 2^3;
liczba += tablica[4] * 2^2;
liczba += tablica[5] * 2^1;
liczba += tablica[6] * 2^0;
wygenerowac czyli wpisac od 0 do 127 binarnie do tablicy boolowej
czyli:
tab[0] = {0,0,0,0,0,0,0}
tab[1] = {0,0,0,0,0,0,1}
tab[2] = {0,0,0,0,0,1,0}
etc
@edit
ok mam już pomysł :D
gdyby ktos potrzebowal:
Kod:void slowo_gen()
{
for (int i = 0; i < 128; i++)
{
int k = i;
if(k>63)
{
slowa[i][6] = true;
k-=64;
}
if(k>31)
{
slowa[i][5] = true;
k-=32;
}
if(k>15)
{
slowa[i][4] = true;
k-=16;
}
if(k>7)
{
slowa[i][3] = true;
k-=8;
}
if(k>3)
{
slowa[i][2] = true;
k-=4;
}
if(k>1)
{
slowa[i][1] = true;
k-=2;
}
if(k==1)
{
slowa[i][0] = true;
k-=1;
}
}
}
nie mam zadnego kompilatora zainstalowanego, ale powinno dzialacKod:for (int liczba=0, liczba=<127, liczba++)
{
int pom=liczba;
for (int max=64, i=0, i=7, ++i)
{
if pom>max then
{
pom-=max;
max/=2;
tab[liczba][i]=1;
} else
tab[liczba][i]=0;
}
}
ale zrobilem chujowe wciecia xD
@up
Chujowa metoda. xD
@topic
Kod w php:
W skrócie: Używamy operacji I na poziomie bitów ( & ) aby sprawdzić czy ten bit w istocie wystepuje w danym miejscu. Reszta nie powinna wymagac komentarza.Kod:<?php
$table = array();
for($i = 0; $i <= 127; $i++)
{
$counter = 64;
$bittable = array();
for($bits = 1; $bits <= 7; $bits++)
{
if($i & $counter == $counter)
$bittable[] = 1;
else
$bittable[] = 0;
$counter /= 2;
}
$table[$i] = $bittable;
}