B1NARY
Re: B1NARY
Teeppä vielä Binääriset And, Not, Or ja Xor.. =)
Solar Eclipse
We're in a simulation, and God is trying to debug us.
- Misthema
- Advanced Member
- Posts: 312
- Joined: Mon Aug 27, 2007 8:32 pm
- Location: Turku, Finland
- Contact:
Re: B1NARY
MaGetzUb wrote:Teeppä vielä Binääriset And, Not, Or ja Xor.. =)
Code: Select all
Function BinAND(bit1, bit2)
If(bit1=1 And bit2=1) Then Return 1: Return 0
End Function
Function BinOR(bit1, bit2)
If(bit1=1 Or bit2=1) Then Return 1: Return 0
End Function
Function BinXOR(bit1, bit2)
If(bit1=1)
If(bit2=0) Then Return 1 : Return 0
Else
If(bit2=1) Then Return 1 : Return 0
EndIf
End Function
'AND
Print "BinAND()"
Print BinAND(0,0)
Print BinAND(1,0)
Print BinAND(0,1)
Print BinAND(1,1)
'OR
Print "BinOR()"
Print BinOR(0,0)
Print BinOR(1,0)
Print BinOR(0,1)
Print BinOR(1,1)
'XOR
Print "BinXOR()"
Print BinXOR(0,0)
Print BinXOR(1,0)
Print BinXOR(0,1)
Print BinXOR(1,1)
WaitKey
End
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: B1NARY
Misthema wrote:MaGetzUb wrote:Teeppä vielä Binääriset And, Not, Or ja Xor.. =)Code: Select all
Function BinAND(bit1, bit2) If(bit1=1 And bit2=1) Then Return 1: Return 0 End Function Function BinOR(bit1, bit2) If(bit1=1 Or bit2=1) Then Return 1: Return 0 End Function Function BinXOR(bit1, bit2) If(bit1=1) If(bit2=0) Then Return 1 : Return 0 Else If(bit2=1) Then Return 1 : Return 0 EndIf End Function 'AND Print "BinAND()" Print BinAND(0,0) Print BinAND(1,0) Print BinAND(0,1) Print BinAND(1,1) 'OR Print "BinOR()" Print BinOR(0,0) Print BinOR(1,0) Print BinOR(0,1) Print BinOR(1,1) 'XOR Print "BinXOR()" Print BinXOR(0,0) Print BinXOR(1,0) Print BinXOR(0,1) Print BinXOR(1,1) WaitKey End
Code: Select all
Function BinAND(bit1, bit2)
Return bit1 And bit2
End Function
Function BinOR(bit1, bit2)
Return bit1 Or bit2
End Function
Function BinXOR(bit1, bit2)
Return bit1 Xor bit2
End Function
Re: B1NARY
Tarkoitin, että ne tulisi tuohon ohjelmaan.
Solar Eclipse
We're in a simulation, and God is trying to debug us.
- Misthema
- Advanced Member
- Posts: 312
- Joined: Mon Aug 27, 2007 8:32 pm
- Location: Turku, Finland
- Contact:
Re: B1NARY
No niin tietysti. En muistanut että CB osaa tehdä asiat yksinkertaisestikin. =)Grandi wrote:Nopeinta on tietenkin olla käyttämättä erillisiä funktioita.Code: Select all
...
EDIT:
Tässä vielä NOT mukana.
Code: Select all
Function BinAND(bit1, bit2)
Return bit1 And bit2
End Function
Function BinOR(bit1, bit2)
Return bit1 Or bit2
End Function
Function BinXOR(bit1, bit2)
Return bit1 Xor bit2
End Function
Function BinNOT(bit)
Return bit = Not bit
End Function
'NOT
Print "BinNOT()"
Print BinNOT(0)
Print BinNOT(1)
'AND
Print "BinAND()"
Print BinAND(0,0)
Print BinAND(1,0)
Print BinAND(0,1)
Print BinAND(1,1)
'OR
Print "BinOR()"
Print BinOR(0,0)
Print BinOR(1,0)
Print BinOR(0,1)
Print BinOR(1,1)
'XOR
Print "BinXOR()"
Print BinXOR(0,0)
Print BinXOR(1,0)
Print BinXOR(0,1)
Print BinXOR(1,1)
WaitKey
End
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: B1NARY
Ja tässä taas vähän optimoidumpi versio:Misthema wrote:EDIT:Tässä vielä NOT mukana.
[/edit]Code: Select all
Function BinNOT(bit) Return bit = Not bit End Function // *naps* 'NOT Print "BinNOT()" Print BinNOT(0) Print BinNOT(1) // *naps* WaitKey End
Code: Select all
Function BinNOT(bit)
Return Not bit
End Function
Re: B1NARY
Sitten tässä on vielä Bagardin joskus tekemät ihan kokonaisluvuille toimivat kunnon binäärioperaatiot.
Että esimerkiksi
EDIT: Huvitti tehä vähän lisää esimerkkejä
Code: Select all
//===============================================================================
// Binäärioperaatioita (by Bagard)
//===============================================================================
Function BinAnd(luku1, luku2)
For i = 0 To 31
luku3 = luku3 + (((luku1 Shr i) Mod 2) And ((luku2 Shr i) Mod 2)) Shl i
Next i
Return luku3
End Function
Function BinNot(luku1)
For i = 0 To 31
luku3 = luku3 + (Not ((luku1 Shr i) Mod 2)) Shl i
Next i
Return luku3
End Function
Function BinXor(luku1, luku2)
For i = 0 To 31
luku3 = luku3 + (((luku1 Shr i) Mod 2) Xor ((luku2 Shr i) Mod 2)) Shl i
Next i
Return luku3
End Function
Function BinOr(luku1, luku2)
For i = 0 To 31
luku3 = luku3 + (((luku1 Shr i) Mod 2) Or ((luku2 Shr i) Mod 2)) Shl i
Next i
Return luku3
End Function
Code: Select all
11001010
01101011
BinOr
11101011
Code: Select all
11011010
10110011
BinXor
01101001
--------
11000101
10000111
BinAnd
10000101
--------
11110001
BinNot
00001110
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com