آموزش سیستمهای شمارشی

 

 

آن چیست؟

     راههای زیادی برای نمایش مقدار عددی وجود دارد. مدتها قبل انسانها از كنار هم قراردادن میله ها برای شمارش استفاده میكردند و بعدها چگونه ترسیم كردن عكسهای میله ها روی زمین و سپس روی كاغذ را یاد گرفتند . بنابراین شماره 5 اول نمایش داده شد مثل :   |    |    |    |    |(برای 5 میله) .

رومی ها شروع  كردند با استفاده از علائم مختلفی برای اعداد متعدد میل ها :         |    |    | كه هنوز معنی میداد 3 میله  ،  اما  V   امروزه معنی 5 میله را میدهد و X استفاده میشد برای نشان دادن 10 تا از آنها !

استفاده كردن از میله ها برای شمارش نظر خوبی برای آن زمان بود و استفاده كردن از علائم بجای میله های واقعی خیلی بهتر بود.

 

 

سیستم ده دهی

امروزه بیشتر مردم از نمایش ده دهی برای شمارش استفاده میكنند.در سیستم ده دهی ده رقم وجود دارد :

0  ,  1  ,  2  ,  3  ,  4  ,  5  ,  6  ,  7  ,  8  ,  9

این ارقام میتواند هر مقداری را نشان دهد بعنوان  مثال : 754

مقدار دهی با حاصل جمع هر رقم ضربدرمبنا(در این مورد 10 است چون ده رقم در سیستم ده دهی وجود دارد) به توان جایگاه رقم( از صفر شمارش میشود) فرم میگیرد.

127*10^2'>  + 12 5*10^1'>  +  124*10^0'>  = 700 + 50 + 4 = 754

 

                                                                                                                              مبنا

                                                           مکان رقم

 

 

 

 

 

 


جایگاه هر رقم خیلی مهم است برای مثال اگر شمار 7 را در آخر جایگذاری نمائید: 547

عدد ارزش دیگری دارد:

 

125*10^2'>  + 12 4*10^1'>  +  127*10^0'>  = 500 + 40 + 7 = 547

                                                                               

                                                                                                                               مبنا

                                                       مکان رقم

 

 

 

 

 

 

 


نكته مهم: هر عدد در توان صفر برابر یك است حتی صفر در توان صفر برابر یك است.

 

12100=1'>

 

12x0=1'>

 

1200=1'>

 

 

 

 

 

 

 


سیستم باینری

كامپیوترها به باهوشی انسانها نیستند(یا هنوز نشده اند) ،  ساده است كه یك ماشین الكترونیكی با دو وضعیت : خاموش و روشن ،یا صفر و یك بسازیم.

كامپیوتر ها از سیستم دودویی استفاده میكنند و سیستم دودویی از دورقم صفر و یك استفاده میكند:

0   ,   1

 بنابراین مبنا 2 است.

 

هر رقم در یك عدد دودویی یك بیت نامیده میشود. 4 بیت یك NIBBLE را تشكیل میدهد، 8 بیت یك بایت را تشكیل میدهد ، 2 بایت یك Word را تشكیل میدهد ، 2 تا Word یك DOUBLE WORD را تشكیل میدهد. (به ندرت استفاده میشود) .

 

00010111             00010111              00010111              00010111

 

 

                       Byte                                                              bit            بیت با ارزش بالا                                

               nibble     Word                                                                                                         

Double Word

 

 

 

 

 

 

 

 

 

 

 

 

 


قانونی وجود دارد كه “b” به انتهای یك عدد دودویی اضافه گردد T،  در این روش ما بصورت قطعی تعیین مینمائیم كه101b   یك عدد باینری است كه در سیستم ده دهی مقدارش برابر 5 است .

 

عدد بابنری10100101b  ارزشی معادل 165 در ده دهی است :

 

 

10100101b   =  

12=1*2^7'>  + 12 0*2^6'>  +    121*2^5'>   + 120*2^4'>  + 120*2^3'> +  121*2^2'>  + 120*2^1'> +  121*2^0'> =  128         +        0       +         32     +        0      +       0      +         4      +      0       +  1   =165

(مقدار ده دهی)

                                                          مکان رقم                                                      مبنا

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


سیستم شانزدهی

در سیستم شانزدهی از 16 رقم استفاده میشود و مبنا برابر 16 است.

اعداد شانزدهی با فشرده كردن به راحتی خوانده میشوند. خیلی راحت است كه ما اعداد را از سیستم دودویی به سیستم شانزدهی تبدیل نمائیم و به جای هر یك NIBBLE (چهار بایت) میتوانیم تبدیل شده رقم شانزدهی را با استفاده  ازاین جدول قرار دهیم.

 

 

 

Decimal (base 10)

Binary (base 2 )

Hexadecimal (base 16)

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100

4

5

0101

5

6

0110

6

7

0111

7

8

1000

8

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

 

(hexadecimal value)

  4                  3               2                 1           

 0100           0011        0010          0001

(binary number)

 

 

 

 

 

 

 

 


قانونی وجود دارد كه به انتهای اعداد شانزدهی حرف H  اضافه گردد. در این روش ما بصورت قطعی تعیین مینمائیم كه 5FH یك عدد شانزدهی است كه مقدارش برابر 95 ده دهی است.

ما همچنین عدد صفر را به ابتدای اعداد شانزدهی كه با حرف) A  تا F (شروع میشوند اضافه مینمائیم .

بعنوان مثال:

 0E120H

اعداد شانزدهی 1234H برابر 4660 در سیستم ده دهی است.

                                  

1*16^3+2 * 16 ^ 2 +3  *16^1+4 * 16^ 0= 4096+512+48+4=4660

(مقدار ده دهی)

 

                                                                                                  مبنا

                                                                                                                          جایگاه رقم

 

 

 

 

 

 


تبدیل از سیستم ده دهي به ديگر سيستمها

        به منظور تبديل از سيستم ده دهي به هر سيستم ديگر لازم است كه مقدار ده دهي به پايه سيستم مطلوب مورد نظر تقسيم نمائیم . در هر زمانی شما باید با خاطر داشته باشید نتیجه را و نگهداريد باقيمانده پردازش تقسيم را و ادامه ميدهيم تا به نتيجه صفر برسيم. باقيماند ها هستند كه سپس استفاده ميشوند براي نمايش مقدار در آن سيستم.

 ترجمه : ابراهیم قمی اویلی

اجازه دهيد مقدار 39(مبناي 10) به سيستم شانزدهي (مبناي )16تبديل نمائيم:

 بطوريكه ميبينيد ما بدست آورديم عدد  شانزدهي: 27H 

 همه باقيمانده ها در مثال فوق كوچكتر از 10 هستند بنابر اين ما از حروف استفاده نميكنيم.

در اينجا يك مثال پيچيده تر :

  اجازه دهيد عدد ده دهي 43868 را به فرم شانزدهي تبديل نمائيم.

 

         باقیمانده                            خارج قسمت              مبنا   /   ورودی

 

 40868    /    16                     2741                                    12

   2741    /    16                       171                                      5

     171    /    16                         10                                    11

       10    /    16                           0                                     10

 

  

  باقیمانده های سیستم مطلوب (برعکس)                                          مبنا

                                                  خارج قسمت را تا رسیدن به 0 ادامه میدهیم

 

  10   ,     11     ,    5     ,     12  

 

 

  A           B            5             C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


نتیجه می شود 0AB5CH  .

 

ما با استفاده از جدول بالا باقيمانده هاي بزرگتر از 9 را با حروف متناظر جايگزين كرديم.

 

از يك قاعده كلي ما ميتوانيم براي تبديل دو دویی استفاده نمائيم.(استفاده از تقسيم بر 2) يا تبديل به عدد شانزدهي و سپس به عدد دودویی با استفاده از جدول بالا.

  A           B           5             C

 

 

 1010    1011   0101    1100

                                                                  

 

 

 

 

 


بطوريكه شما ميبينيد عدد باينري 1010101101011100b را بدست آوريد.

 

 

 

 

 

اعداد با علامت:

     راه مطمئن براي اينكه اظهار نمائيم آيا عدد شانزدهي OFFH مثبت است يا منفي وجود ندارد. ما ميتوانيم هر دو مقدار عددي "-1" و" 255 "را نمايش دهيم .

 

   براي ايجاد تركيب  "256 " (شامل صفر)" 8" بيت مي تواند استفاده شود ،  بنابراین  ما به سادگي فرض ميكنيم كه" 128 "تركيب اول( صفر تا 128) براي نمايش دادن اعداد مثبت و "128" تركيب بعدي (128 تا 256) براي نمايش دادن اعداد منفي ميباشد.

به منظور بدست آوردن" 5- " ما بايد ازعدد تركيبي "256 " عدد" 5 "را كم كنيم ،  بنابراين ما بدست مي آوريم :  "256-5=251"

 استفاده از اين راه براي نمايش عدد منفي پيچيده است.در محاسبه زماني كه شما اضافه كنيد منفي" 5- " به" 5 "صفر بدست مي آيد.

این اتفاق رخ میدهد  زمانيكه پروسسور دو بيت  " 5 "و" 251" را جمع ميكند نتيجه بدست آمده بيشتر از 255 است.بنابراين سرريز پروسسور صفر بدست مي آيد!

 

 

    11111011          -5            or            251

این یبت خارج از یک بایت                                                                                          است و سر ریز شده است                                                                    +    

    00000101           5              

                                               نتیجه

 

   10000000             0  

 

 

 

 

 

 

 

 

 

 

 

 

 


در اين زمان تركيب 128 تا 256 هستند كه استفاده ميشوند. بیت بالا همیشه یک است.همچنانكه اين ممکن است استفاده شود براي تعيين علامت يك عدد .

 

 

 قانوني هست كه استفاده ميشود براي WORDS (مقدار 16 بيت)‌شانزده بيت ميسازد 65536 تركيب ،  32768 تركيب اول  (32767...0) است كه اعداد مثبت را نمايش مي دهد ، و 32768 تركيب بعدي(65535...32767) اعداد منفي را نمايش ميدهد.

 

 

 

 

 

 

 

 

 

 

 يك ابزار دستي براي تبديل اعداد در EMU8086 وجود دارد ، و از هر عدد بیان شده محاسبات را  میسازد.همه شما لازم است کلیک کنید روی منوی  MATH .

 

تبدیل مبنا (Base converter)

 اجازه ميدهد كه شما اعداد را از هر سيستم به هر سيستمي تبديل نمائيد ، فقط مقدار را در هر جعبه متن وارد نمائيد اتوماتيك تبديل ميشود به همه سيستمهاي ديگر. شما ميتوانيد با مقادیر 8 بيت و 16 بيت كار نمائيد.

 

 

محاسبات چند پایه ای (Multi base calculator)

ميتوانيد براي ساختن محاسبات بين اعداد در سيستمهاي مختلف و تبديل اعداد از يك سيستم به سيستم ديگر استفاده نمائيد.

عبارت را وارد نمائيد و سپس کلید Enter را فشار دهيد، نتيجه در سيستمهاي انتخاب شده ظاهر ميشود. شما میتوانید با مقادیر بالای 32 بیت کار کنید .

 هنگاميكه علامت (چک می شود . ارزياب  فرض ميكند كه بايد با همه مقادير( به غير از ده دهي و Double words  (بصورت علامت دار برخودرد نمايد.

 Double words  هميشه با مقادير ، علامت دار برخورد ميكند بنابراين 0FFFFFFFFh تبديل ميشود به  "1-" .

  براي مثال شما ميخواهيد محاسبه كنيد :0FFFFh *  10h + 0FFFFh                      (بیشترین مکان حافظه ای که در CPU 8086 میتوانددسترسی داشته باشد (.

 اگر شما علامت را چك نمائيد ، شما عدد 17-  را بدست خواهيد آورد . ( زيرا * 16 + (-1)=-16-1=-17 -1) (   ارزش گزاری شده   .

برای محاسبه با مقادیر بدون علامت ، علامت دار ها چک نمیشود بنابراین نتیجه ارزیابی برابر خواهد شد با 65535 * 16 + 65535   و شما بدست می آورید 1114095.

شما ميتوانيد همچنين از Base converter براي تبدیل ارقام غير ده دهي به مقادي علامت دار ده دهي استفاده كنيد. و انجام دهید محاسبات را با مقادیر ده دهی (اگر برای شما آسانتر است ) .

 

 

 

 

 

 

 

 

 

این عملگرهای پوشش داده می شوند :

 

 

تعاریف

عملگر

نه (برعکس کردن همه بیت ها)

~

ضرب

*

خارج قسمت

/

باقی مانده

%

جمع

+

تفریق

-

حرکت به چپ

<< 

حرکت به راست

>> 

بیت منطقی  " و "

&

ببت منطقی XOR

^

بیت منطقی " یا"

|

 

اعداد باينري بايد پسوند" b "داشته باشند.

برای مثال : 00011011b

اعداد شانزدهي بايد پسوند" h "داشته باشند ، و با صفر  شروع شوند زمانيكه اولين رقم آنها حروف) A تا F (باشد.

برای مثال : 0ABCDh

اكتان (مبناي 8( اعداد باید پسوند "O " داشته باشند .

برای مثال : 77O