Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Jak zrobić logicznego XOR-a w Excelu ?

kobi87 04 Lis 2010 21:28 4305 7
  • #1 04 Lis 2010 21:28
    kobi87
    Poziom 2  

    witam serdecznie czy ktoś już rozpatrywał proste działanie bramki logicznej XOR w Excel-u, C++ jest to w miarę łatwe do prostego wygenerowania, ale czy ktoś ma pomysł jak to powinno wyglądać w excelu.

    0 7
  • #4 05 Lis 2010 10:34
    Eagle
    Poziom 23  

    Witam,

    Kolejna możliwość to :

    MOD(x+y;2)

    ale działa to jak i powyższe dla jednego bitu.

    Problemem będzie zrobić 0x55 ^ 0xAA ->
    ale chyba autorowi pytania chodzi o symulację pojedynczej bramki

    Pozdrawiam

    Eagle

    0
  • #5 07 Lis 2010 14:37
    kobi87
    Poziom 2  

    tak faktycznie chodziło o zwizualizowanie XORa w prostej postaci bramki
    cel osiągnięty dzięki za pomoc

    0
  • #6 09 Lis 2010 10:51
    walek33
    Poziom 28  

    Wiem, że to obok tematu, ale jako ciekawostkę zaproponuję rozwiązanie

    Cytat:
    Problemem będzie zrobić 0x55 ^ 0xAA
    :D
    Załatwi to prosta funkcja użytkownika w VBA
    Code:
    Function BajtXor(Bit1, Bit2 As Byte) As Byte
    
        BajtXor = Bit1 And Bit2
        BajtXor = Not BajtXor
    End Function

    która będzie działać pod warunkiem przedstawienia w/w wartości hex w formacie dec. Może być za pomocą jednej z funkcji inżynierskich Excela
    Code:
    Hex2Dec()

    0
  • #7 12 Lis 2010 16:49
    Eagle
    Poziom 23  

    rozwiązanie, które zaproponowałeś

    Cytat:


    Code:

    Function BajtXor(Bit1, Bit2 As Byte) As Byte
        BajtXor = Bit1 And Bit2
        BajtXor = Not BajtXor
    End Function




    nie wykonuje operacji XOR a raczej NOT AND,
    po drugie użytkownik musi zaakceptować korzystanie z makr.

    Prawidłowe rozwiązania za pomocą makr jest poniżej. Jedna z funkcji jako argumenty pobiera liczby a druga stringi

    Code:

    Function XOR_DEC(a As Byte, b As Byte) As Byte
        XOR_DEC = a Xor b
    End Function


    Function XOR_HEX(a As String, b As String) As String
        XOR_HEX = Application.WorksheetFunction.Dec2Hex(Application.WorksheetFunction.Hex2Dec(a) Xor Application.WorksheetFunction.Hex2Dec(b))
    End Function


    eagle

    0
  • #8 15 Lis 2010 08:49
    walek33
    Poziom 28  

    Masz rację. Przekombinowałem. Twoje rozwiązanie jest poprawne. :cry:

    0