VB-Rätsel

Es gibt 87 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Ja stimmt schon, wusste es nicht mehr auswendig...
    dann fällt mir das noch ein:

    VB.NET-Quellcode

    1. a* (2 << (x - 1))

    Meintest du die?

    Edit: x-1, sonst hat man nicht hoch x, sondern hoch (x+1)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jvbsl“ ()

    omg da hätte ich auch drauf kommen können...xD
    Wie einen(mich) die zwei da fehlgeleitet hat...

    Man ich hab keine Idee, mir fehlt eindeutig die Kreativität, aber ich editiers rein, wenn ich was hab...

    VB.NET-Quellcode

    1. Dim x As Integer = 1
    2. Dim y As Integer = &HFF
    3. x = ((x * (&H1 << &O10) Or &HFF) And Not y) >> (1 << (CInt(Math.Log(y * 2, 8)) And &HFF))
    4. y = ((((1 - 257) * &HFFFFFFFF) << 8) >> (1 << 4)) << 7
    5. x = ((x * (&H1 << &O10) Or &HFF) And Not y) >> (1 << (CInt(Math.Log(y * 2, 8)) And &HFF))
    6. y = 1 << (((x << 8) * 4) \ (1 << 8))

    Gefragt sind die beiden Variablen x und y am Ende...
    Aber mit Lösungsweg posten, sonst hatman wohl nen Kompiler benutzt...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jvbsl“ ()

    Wenns sonst keiner löst:
    x = 1
    y = 255
    &H1 = 1
    &O10 = 8
    &HFF = 255
    ==> x* (1 << 8) Or 255 = 1 * 256 + 255 = 511
    511 And Not 255 = 256
    CInt(Math.Log(510, 8)) = 3 (hier sollte wohl eher Math.Log(y * 2 +2, 8) stehen)
    3 And 255 = 3 ==> kein Unterschied
    ==> 1 << 3 = 8
    ==> 256 >> 8 = 1

    ==>x = ((x * (&H1 << &O10) Or &HFF) And Not y) >> (1 << (CInt(Math.Log(y * 2, 8)) And &HFF)) = 1

    &HFFFFFFFF = -1
    (1-257) * -1 = 256
    1 << 4 << 7 = 1 << 11
    256 << 8 >> 16 = 256 >> 8 = 1
    1 << 7 = 128
    y = ((((1 - 257) * &HFFFFFFFF) << 8) >> (1 << 4)) << 7 = 128


    x = 1
    y = 128

    (1 * (1 << 8) Or 255) = 511
    511 And Not 128 = 383
    Cint(Math.Log(256, 8)) = CInt(Math.Log(512\2, 8) = Cint(math.Log(512, 8) - Math.Log(2, 8)) = CInt(3 - 1/3) = 3
    1 << 2 And 255 = 1 << 3 = 8
    383 >> 8 (uff, das im Kopf...)
    Erst mal umformen:
    383 = 256 + 127
    ==> 383 >> 8 = 256 >> 8 + 127 >> 8
    Binär ist 127: 11111111
    ==> 11111111 >> 8 = 0
    ==> 256 >> 8 + 127 >> 8 = 1 + 0 = 1
    ==> x = ((x * (&H1 << &O10) Or &HFF) And Not y) >> (1 << (CInt(Math.Log(y * 2, 8)) And &HFF)) = 1

    ==> ( x << 8) *4 \ 256 = 256 * 4 \ 256 = 4
    ==> 1 << 4 = 16
    ==> y = 1 << (((x << 8) * 4) \ (1 << 8)) = 16

    ==> x = 1; y = 16

    Gruß
    ~blaze~
    Genau.

    Hier ein schnell gelöstes Rätsel. Bitte postet wieder den Lösungsweg und gebt evtl. noch eine Begründung an.

    VB.NET-Quellcode

    1. Dim x As Integer = 16
    2. Dim y As Integer = 16 << 1
    3. Dim z As Integer = 16 >> 2
    4. Dim w As Integer = x * y * z
    5. Dim result As Integer = w >> CInt(Math.Log(w, 2))


    Sorry, mir ist nichts besseres eingefallen, aber da wir schon die ganze Zeit Bitshifts hatten... hab ich mir gedacht, dass wir zur Abwechslung mal Bitshifts dranbringen könnten.

    Gruß
    ~blaze~
    was heißt die 2 im Logarhytmus nochmal? dann hab ich nämlich das ergebnis :D

    Mein Lösungsweg bis jetzt

    x= 16
    y = 16<<1 = 32
    z = 16>>2 = 4
    w = x * y * z
    w = 2^1 * 2^5 * 2^3 = 2^11 = 2048

    ^ = Potenz

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „xXAlphaXx“ ()

    Ja jetzt mach ich mal meinen Rechenweg weiter :D

    2048 zur Basis 2 = 11 steht ja eig oben

    so jetzt aber :D

    1 00000 00000 - 11 Stellen = 1

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „xXAlphaXx“ ()

    verrat ich nicht :P

    VB.NET-Quellcode

    1. Dim x As Integer = 16
    2. Dim y As Integer = 32
    3. Dim z As Integer = 4
    4. Dim w As Integer = 2048
    5. Dim result As Integer = 2048 >> CInt(11.0)
    6. result = 1

    Habs mal so hingeschrieben...
    Log(2048,2) = Log10(2048) / Log10(2)

    Log10 ist der Logarithmus mit der Basis 10, Standardabgekürzt 10Edit: Natürlich Blödsinn^^
    Ln ist der Logarithmus mit der eulerschen Zahl als Basis..

    Ist es ok, wenn ich für den Logarithmus den Taschenrechner verwendet hab?^^
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jvbsl“ ()