1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 0 0 1 1 1

  • No School
  • AA 1
  • 19

This preview shows page 6 - 8 out of 19 pages.

1 1 1 1 0 1 0 1 1 0 0 0 + 1 1 1 1 0 1 1 0 0 1 0 0 1 1 1 0 Има също и бърз начин за намирането на допълнителния код на дадено число. Копирайте нулите на числото започвайки от най-малко значещата позиция. Продължете този процес, докато стигнете първата 1. Копирайте тази единица също. Ако най-малко значещия бит е 1, копирайте този бит. След това инвертирайте останалите битове. Това е показано на Фигура 5. първа “1” от ляво надясно 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 Стъпка 1: Копирайте битовете включително първата “1” Стъпка 2: Инвертирайте останалите битове Фигура 5 Бързо определяне на допълнителен код. Резултатът съвпада с резултата от предишния пример. В десетичната система, обратното число на 5 е отрицателното -5. Ако вземем обратното число отново, трябва да се върнем към първоначалната стойност, т.е. обратното на -5 е 5. Да проверим това в двоичната система. Двоичната стойност на 45 10 е 00101101 2 . Да видим какво ще стане ако вземем допълнителния код два пъти последователно. Оригинална стойност = 45 00101101 Обратен код на 45 11010010 Допълнителен код на 45 = - 45 11010011 Обратен код на - 45 00101100 Допълнителен код на - 45 = 45 00101101 Числото се връща към първоначалната си стойност.
Image of page 6
4. Най-старшият бит като индикатор за знак Както беше показано, използваме допълнителния код за да намерим обратното число, което в горните примери е отрицателно число. Но тук имаме проблем. Както беше показано, допълнението до две на числото 45 10 = 00101101 2 е – 45 10 = 11010011 10 . Но от миналата лекция знаем, че осем битовата стойност 11010011 2 е равна на 2 7 + 2 6 + 2 4 + 2 1 + 2 0 = 128 + 64 + 16 + 2 + 1 = 211 10 . Току що доказахме, че – 45 10 е равно на 211 10 . Това означава, че когато използваме допълнителен код, значението на някои битове трябва да бъде променено, за да можем да представяме отрицателни числа. От бързото определяне на допълнението до две в предишната секция, можем да забележим, че с изключение на два случая, най-старшия бит на допълнителния код винаги е обратен на оригиналната стойност. Двата случая, когато това не е вярно, са когато всички битове на числото с изключение на най-старшия са нули и най старшия бит е 0 или 1. В тези два случая, допълнението до две е равно на оригиналното число. Във всички останали случаи ние винаги срещаме единица преди да разгледаме най- старшия бит, движейки се от ляво на дясно. Тъй като всеки бит след тази единица се инвертира, най-старшия бит също ще бъде инвертиран. Когато оригиналната стойност има 0 в най-старшия бит, допълнителният код ще има 1 и обратно. Поради това си свойство, най-старшия бит на стойността може да се използва, за да покаже дали числото е положително или отрицателно и се нарича бит за знак . Двоична стойност, която има 0 в най-старшия бит, ще я смятаме за положителна, а единица в тази позиция ще показва, че числото е отрицателно. За да няма недоразумения, винаги трябва да декларираме броя на битовете, които число със знак използва. Без тази декларация компютърът или потребителят няма да знае кой бит е най- старши. Понеже го използваме за знак на двоичното число, най-старшия бит не може да служи за представяне на степен на 2, т.е. само n-1 бита могат да се използват за големината на числото, а n-тия бит се използва за знак. Това намалява наполовина обхвата на
Image of page 7
Image of page 8

You've reached the end of your free preview.

Want to read all 19 pages?

  • Fall '19

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern

Stuck? We have tutors online 24/7 who can help you get unstuck.
A+ icon
Ask Expert Tutors You can ask You can ask You can ask (will expire )
Answers in as fast as 15 minutes
A+ icon
Ask Expert Tutors