B1NARY
Posted: Fri Mar 04, 2011 11:07 pm
Teiän tälläsen pienen ohjelman aikani kuluksi selventämään IRL-ystävälleni binäärilukujärjestelmää. Ohjelma siis muuttaa luvun väliltä 0-8191 binääriluvuksi. Sorsat tulee mukana.
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
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
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
...
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
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
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