Results 1 to 7 of 7
  1. #1
    Unintended's Avatar
    Title
    Elite
    Join Date
    Oct 2005
    Location
    Vienna & Istanbul
    Posts
    340
    Thanks Thanks Given 
    6
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts

    Left shift im Micro-Programm

    Auf der Seite 139, Programmzeile 1 steht: R7 <- lsh (1+1)

    also die Zahl 10 im Binärsystem wird um eine Stelle nach links verschoben, was das Ergebnis liefern sollte (beim arithmetic left shift):

    wieder 10 (msb = 1 bleibt erhalten, lsb = 0 geht weg, neuer 0er kommt wieder.)

    aber im Buch steht:

    # und mit lsh ((10)) = (100) = (4) erzeugt. (4 im Dezimalsystem)

    Bin ich blöd oder stimmt da was nicht?

    Danke für jede Hilfe!
    I'll be there as soon as I can, but I'm busy mending broken, pieces of the life I had before...

  2. #2
    Plantschkuh!'s Avatar
    Title
    Dipl.Ing
    Join Date
    Jun 2003
    Location
    mal hier, mal da
    Posts
    2,581
    Thanks Thanks Given 
    365
    Thanks Thanks Received 
    496
    Thanked in
    323 Posts
    Quote Originally Posted by Unintended View Post
    (beim arithmetic left shift)
    Left shift ist left shift, da gibts keine Unterscheidung in arithmetic/logical.

    wieder 10 (msb = 1 bleibt erhalten, lsb = 0 geht weg, neuer 0er kommt wieder.)
    Selbst wenn man wie beim right shift eine Unterscheidung nach dem LSB machen würde, einen shift ohne Bewegung von Bits gibt es nicht. D.h. das Ergebnis vom left shift muß auf jeden Fall von der Form 10x sein; üblicherweise wird 0 reingeshiftet, also wäre das Ergebnis 100, aber wenn es dich freut, kann man auch eine Variante mit 1 vorsehen: 101.

    Aber wie man auf 10 kommen soll, kann ich mir nicht plausibel ausmalen.

    # und mit lsh ((10)) = (100) = (4) erzeugt. (4 im Dezimalsystem)
    Das schaut richtig aus.
    *plantsch*

  3. The Following User Says Thank You to Plantschkuh! For This Useful Post:


  4. #3
    schrankk's Avatar
    Title
    Elite
    Join Date
    Jun 2008
    Location
    Wat Pah Nanachat
    Posts
    325
    Thanks Thanks Given 
    182
    Thanks Thanks Received 
    38
    Thanked in
    24 Posts
    und was kommt bei rsh(10) raus? etwa 1?

    vlg
    "Everything should be made as simple as possible, but not simpler."
    Albert Einstein

  5. #4
    gelbasack's Avatar
    Title
    Dipl.Ing
    Join Date
    Mar 2004
    Location
    ja
    Posts
    1,613
    Thanks Thanks Given 
    145
    Thanks Thanks Received 
    177
    Thanked in
    79 Posts
    Quote Originally Posted by schrankk View Post
    und was kommt bei rsh(10) raus? etwa 1?

    vlg
    Ja.

    Außer du machst einen arithmetischen Shift und hast nur 2-Bit-Werte.

  6. The Following User Says Thank You to gelbasack For This Useful Post:


  7. #5
    schrankk's Avatar
    Title
    Elite
    Join Date
    Jun 2008
    Location
    Wat Pah Nanachat
    Posts
    325
    Thanks Thanks Given 
    182
    Thanks Thanks Received 
    38
    Thanked in
    24 Posts
    Quote Originally Posted by gelbasack View Post
    Ja.

    Außer du machst einen arithmetischen Shift und hast nur 2-Bit-Werte.
    und wenn so, kommt dann wieder mal (10)?

    vlg
    "Everything should be made as simple as possible, but not simpler."
    Albert Einstein

  8. #6
    gelbasack's Avatar
    Title
    Dipl.Ing
    Join Date
    Mar 2004
    Location
    ja
    Posts
    1,613
    Thanks Thanks Given 
    145
    Thanks Thanks Received 
    177
    Thanked in
    79 Posts
    Nein, 11 wäre das Ergebnis.
    Geshiftet wird wie logisch, das msb bleibt aber stehen (das msb steht somit an der Stelle des msb und auch an der 2. Position). 10 wäre ja -2, 11 -1, somit bleibt die Division durch 2 erhalten (was der Sinn des arithmetischen Shifts ist)

  9. The Following User Says Thank You to gelbasack For This Useful Post:


  10. #7
    schrankk's Avatar
    Title
    Elite
    Join Date
    Jun 2008
    Location
    Wat Pah Nanachat
    Posts
    325
    Thanks Thanks Given 
    182
    Thanks Thanks Received 
    38
    Thanked in
    24 Posts
    Quote Originally Posted by gelbasack View Post
    Nein, 11 wäre das Ergebnis.
    Geshiftet wird wie logisch, das msb bleibt aber stehen (das msb steht somit an der Stelle des msb und auch an der 2. Position). 10 wäre ja -2, 11 -1, somit bleibt die Division durch 2 erhalten (was der Sinn des arithmetischen Shifts ist)
    OK, ich verstehe... danke!

    vlg
    "Everything should be made as simple as possible, but not simpler."
    Albert Einstein

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •