Operacja mnożenia bitów

To forum jest dla wszystkich pasjonatów wiecznie młodych mikrokontrolerów '51. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Arko
-
Posty: 16
Rejestracja: 02 gru 2006, 11:04
Lokalizacja: okolice Kielc
Kontakt:

Operacja mnożenia bitów

Post autor: Arko » 01 sty 2008, 20:13

Witam.
Napotkałem mały problem podczas pisania programiku w Bascom'51 pod 2051.
Przy próbie mnożenia bitów wywala błąd nr.22 "Nielegalna operacja matematyczna" :-/.
Żadnej operacji arytmetycznej nie chce wykonać. (+,-,*,/).
Może ktoś podpowiedzieć dlaczego?
kompilator bascom8051 v2.0.12.0
gg:3682182

Kod: Zaznacz cały

dim p10 as bit
dim p11 as bit
dim p1011 as bit

do
p10 = p1.0
p11 = p1.1

p1011 = p10 *p11

if p1011 =1 then 
set p1.7
end if
loop
[/code]

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 01 sty 2008, 21:23

To nie jest to samo co mnożenie zwykłych liczb! Dla bitów używasz operacji AND, OR, XOR, oraz NOT. Poczytaj o tożsamościach logicznych.

Awatar użytkownika
olo16
Użytkownik
Posty: 396
Rejestracja: 12 paź 2007, 16:37
Lokalizacja: w-wa

Post autor: olo16 » 01 sty 2008, 21:57

Jeśli mnożenie, to daj AND. Nie wiem niestety jak się to pisze w bascomie.

Arko
-
Posty: 16
Rejestracja: 02 gru 2006, 11:04
Lokalizacja: okolice Kielc
Kontakt:

Post autor: Arko » 02 sty 2008, 19:15

ok. już sobie poradziłem.
rzeczywiście zmienne bitowe mnoży sie and

zmienne bajtowe pomnożyły sie przez "*"

Pozdrawiam Arko

ODPOWIEDZ