B1NARY

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
User avatar
TheDuck
Devoted Member
Posts: 632
Joined: Sun Aug 26, 2007 3:51 pm
Location: C:\Program Files\Tuusula\

B1NARY

Post by TheDuck »

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.
binary.zip
(589.15 KiB) Downloaded 453 times
^^
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: B1NARY

Post by MaGetzUb »

Teeppä vielä Binääriset And, Not, Or ja Xor.. =)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: B1NARY

Post by Misthema »

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
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: B1NARY

Post by Koodiapina »

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
Nopeinta on tietenkin olla käyttämättä erillisiä funktioita.
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: B1NARY

Post by MaGetzUb »

Tarkoitin, että ne tulisi tuohon ohjelmaan.
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: B1NARY

Post by Misthema »

Grandi wrote:

Code: Select all

...
Nopeinta on tietenkin olla käyttämättä erillisiä funktioita.
No niin tietysti. En muistanut että CB osaa tehdä asiat yksinkertaisestikin. =)

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
[/edit]
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: B1NARY

Post by Koodiapina »

Misthema wrote:
EDIT:

Tässä vielä NOT mukana.

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
[/edit]
Ja tässä taas vähän optimoidumpi versio:

Code: Select all

Function BinNOT(bit)
    Return Not bit
End Function
Mutta joo, kuten jo sanoin, niin aika hupsuahan se on CB:n valmista toteutusta ruveta wrapperoimaan.
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: B1NARY

Post by valscion »

Sitten tässä on vielä Bagardin joskus tekemät ihan kokonaisluvuille toimivat kunnon binäärioperaatiot.

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
Että esimerkiksi

Code: Select all

11001010
01101011
BinOr
11101011
EDIT: Huvitti tehä vähän lisää esimerkkejä :P

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
Post Reply