تبدیل مبنای 16 به 10

  • تبدیل مبناها به یکدیگر

    خب تو این پست میخوام تبدیل مبناهای مختلف به همدیگرو بهتون بگم . البته میدونم که همتون بلدید و مطالب بهتر از این وبلاگ کوچولو رو میتونید مثل آب خوردن گیر بیارید ولی من مینویسم شاید به درد کسی خورد و تونست از این مطالب استفاده کنه . دوستان من یه برنامه نوشتم که تبدیل مبنا ها رو انجام میده . تبدیل مبناهای 2 به 8 ، 10 ، 16 تبدیل مبنای 8 به 2 ، 10 ، 16 تبدیل مبنای 10 به 2 ، 8 ، 16 ، و بالاخره تبدیل مبنای 16 به 2 ، 8 ، 16 . هم چنین این برنامه قابلیت جمع و ضرب و تقسیم و تفریق تو مبناهای مختلف رو هم داره که میتونید از اینجا سورس کد ++C,C و exe یا همون فایل اجراییش رو دانلود کنید . مبنایی که به صورت عام استفاده میشه مبنای ۱۰ هست ولی کامپیوتر از مبنای ۲ برای نمایش و محاسبه ی اطلاعات استفاده میکنه . فرض کنید که مبنای ما r هست . اعداد 0 تا r-1 رقم های این مبنا رو تشکیل میدن در نتیجه داریم : our system is decimal system and r is 10 ( = base ten ) --> digits are : 0,1,...,8,9 = r-1 = 10-1 in binary system ( = base two ) r = 2 --> digits are : 0,1 in octal system ( = base eight) r = 8 --> digits are : 0,1,...,6,7 and finally, in hexadecimal number system ( = base sixteen ) r is 16 --> digits are : 0,1,...,14,15 خب برای اینکه اعداد 10 تا 15 در مبنای 16 با 1,0 و ... و 1,5 اشتباه نشن ما از حروف A to F برای نمایش این اعداد استفاده میکنیم . A=10, B=11, C=12, D=13, E=14, F=15 حالا بیاییم مبناها رو به هم تبدیل کنیم . تبدیل مبنای 2 به مبنای 8 و 16 و برعکس و تبدیل مبناهای 2 و 8 و 16 به مبناب 10 ، کار خیلی ساده ای هست و قسمت مشکل کار تبدیل مبنای 10 به مبنای 2 و 8 و 16 هست که اول این مطلب رو میگم . خب روش رو برای تبدیل مبنای 10 به مبنای 2 میگم . تبدیل 10 به 8 و 16 هم مینطوره . فرض کنید میخواید عدد 431 رو ببرید به مبنای 2 . (لقمه ی بزرگ تر از دهنم برداشتم ) داریم : 431/2 = 215 --> 1 215/2 = 107 --> 1 107/2 = 53 ---> 1 53/2 = 26 -----> 1 26/2 = 13 -----> 0 13/2 = 6 ------> 1 6/2 = 3 -------> 0 3/2 = 1 -------> 1 1/2 = 0 -------> 1  حالا 0 و 1 های بدست آمده که درواقع باقیمانده های اون تقسیم مورد نظر هستن رو از پایین به بالا ، از چپ به راست بنویسید که عدد 110101111 به دست میاد که جواب مورد نظره . گرچه الان ماشین حسابهایی که تبدیل مبنا رو انجام میدن تو بازار هست ولی یاد گیریه اون تو زبان اسمبلی خیلی کاربرد داره . یه روش ساده تر هم وجود داره که اونم میگم . برای این کار تقریبا باید توانهای 2 رو از بر باشید . توانهای دو عبارتند از : 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, ... اگه همون مثال قبلی رو بخوایم با این روش حل کنیم داریم : 512 > 431 > 256 ---> Answer = 0 + 256 + .... ---> 431-256 = 175 256 > 175 > 128 ---> Answer = 256 + 128 + .... ---> 175-128 = 47 128 > 64 > 47 > 32 ---> Answer = 256 + 128 + 0 + 32 ---> 47-32 = 15 32 > 16 > 15 > 8 ---> Answer = 256 + 128 + 0  + 32 + 0 + 8 ---> 15-8 = 7 8 > 7 > 4 ---> Answer ...



  • آموزش تبدیل مبنا ها

    تبدیل مبنای ۱۰ به ۲می بایست عدد در مبنای ۱۰ را مرتباْ تقسیم بر ۲ کنیم و باقیمانده ها را نگهداریم . این عمل را آنقدر ادامه می دهیم تا خارج قسمت صفر شود.در آخر باقیمانده ها را از راست به چپ کنار هم می نویسیم.مبنای ۲ را باینری binary نیز می گویند.در مبنای ۲ فقط ارقام صفر و یک را داریم.تبدیل مبنای ۲ به ۱۰زیر عدد خط کشیده به هر رقم یک موقعیت می دهیم.موقعیتها از سمتراست به چپ و از صفر شماره گذاری می شوند.هر رقم را ضرب در مبنا(۲) به توان موقعیت می کنیم.نهایتاْ اعداد را با هم جمع می کنیم.تبدیل مبنای ۱۰ به ۱۶می بایست عدد در مبنای ۱۰ را مرتباْ بر ۱۶ تقسیم کنیم و باقیمانده ها رانگه داریم.این عمل را آنقدر ادامه می دهیم تا خارج قسمت صفر شود.در آخر باقیمانده ها را زا راست به چپ کنار هم می نویسیم.در مبنای ۱۶ به شانزدهنماد نیاز داریم ارقام صفر تا ۹ و نمادهای a,b,c,d,e,f که به ترتیب متناظر اعداد 10,11,12,13,14,15 هستند.مبنای ۱۶ را هگزادسیمال (hex) نیز می گویند.تبدیل مبنای ۱۶ به ۱۰زیر عدد خط کشیده به هر رقم یک موقعیت می دهیم.موقعیت ها از سمتراست به چپ و از صفر شماره گذاری می شوند.هر زقم را ضرب در مبنا (۱۶)به توان موقعیت میکنیم.نهایتاْ اعداد حاصله را با هم جمع می کنیم.تبدیل مبنای ۱۰ به 8می بایست عدد در مبنای ۱۰ را مرتباْ تقسیم بر 8 کنیم و باقیمانده ها را نگهداریم . این عمل را آنقدر ادامه می دهیم تا خارج قسمت صفر شود.در آخر باقیمانده ها را از راست به چپ کنار هم می نویسیم.تبدیل مبنای ۸ به ۱۰زیر عدد خط کشیده به هر رقم یک موقعیت می دهیم.موقعیتها از سمت راستبه چپ و از صفر شماره گذاری می شوند.هر رقم را ضرب در مبنای (۸) به توان موقعیت می کنیم.نهایتاْ اعداد حاصله را با هم جمع می کنیم.تبدیل مبنای ۲ به ۸ و بالعکسبرای تبدیل مبنای ۸ به ۲ کافی است به جا هر رقم معادل ۳ بیتی آن را ازجدولدودهی قرار دهیم.2(011 101 100)=2(?)=8(354)برای تبدیل مبنای ۲ به ۸ از سمت راست ۳ بیت ۳ بیت جدا می کنیم.اگرتعدادبیتها مضربی از ۳ نبوداز سمت چپ صفر اضافه می کنیم.آنگاه معادل۳بیتی های جدا شده را از جدول زیر می نویسیم.8(?) =2(1101111011)8(1573)=2(001'101'111'011) تبدیل مبنای ۲ به ۱۶ و بالعکسبرای تبدیل مبنای ۱۶ به ۲ کافی است به جای هر رقم مهادل ۴ بیتی آن رااز جدول زیر قرار دهیم.B 5 7)16=(?)2=(1011 0101 0111)2)برای تبدیل مبنای ۲ به ۱۶ از سمت راست۴ بیت ۴ بیت جدا می کنیم.اگر تعداد بیتها مضربی از ۴ نبود از سمت چپ صفر اضافه می کنیم.آنگاه معادل ۴بیتی های جدا شده را از جدول فوق می نویسیم.16(?)=2(10110110111010):AA:(0010'1101'1011'1010'0001)2=(2DBA1)16 تبدیل مبنای ۸ به ۱۶ و بالعکسبرای اینکار ساده تر این است که ابتدا عدد را به مبنای ۲ برده و سپس بهمبنای دیگر ببریم.A:(A36)16=(?)8A:(A36)=(1010 ...

  • اصول تبدیل اعداد

    شناسایی اصول تبدیل اعداد مبناهای مختلف به یکدیگر 1-   تبدیل اعداد از مبنای 10 به بقیه مبناها :برای این کار قسمت صحیح  را از قسمت اعشاری آ ن جدا می کنیم ،برای تبدیل قسمت صحیح از تقسیمات متوالی استفاده می کنیم.مثلا   (45)10=(101101)2                                   (92)10=(134)8                                             برای تبدیل قسمت اعشاری از ضرب استفاده می کنیم .برای این کار قسمت اعشاری در مبنای خواسته شده ضرب می کنیم، قسمت صحیح حاصل را بعد از ممیز نوشته قسمت اعشاری را دوباره ضرب می کنیم . (45)10=(101101.1)2 0.5*2=1.00 تبدیل را تا چند رقم اعشار که مد نظر طراح سوال باشد باید انجام دهیم. (0.12)10=(0.00011)2 0.12*2=0.24 0.24*2=0.48 0.48*2=0.96 0.96*2=1.92 0.92*2=1.84 2 – تبدیل از بقیه مبناها به مبنای 10: برای این کار ارقام را به توان های مختلف مبنای مبدا ضرب می کنیم .  2*81 + 24*80 + 5*8-1 + 1*8-2 (A2.43)16=10*161 + 2*160 + 4*16-1 + 3*16-2=162.2617188 (2B3.21)16=2*162 + 11*161 + 3*160 + 2*16-1 + 1*16-2                  =2*256+11*16+3+2/16+1/256                  =512+176+3+0.125+0.0039063=691.12891   3 – تبدیل از بقیه مبناها به یکدیگر: برای اینکار اول باید مبنای مبدا را به مبنای10 تبدیل کنیم ، سپس مبنای 10 را به مبنای مقصد تبدیل کنیم، یعنی دو مرحل تبدیل داریم . (12.43)8=(   ?   )9 (12.43)8=1*8 + 2 + 4/8 + 3/64=(10.546875)10                                                 =(11.482)9 0.546875*9=4.921875 0.921875*9=8.296875 0.296875*92.671875   4 – تبدیل از مبنای 2 به 16: برای تبدیل از مبنای 2 به مبنای 16 از ممیزبطرف راست وچپ اعداد را چهار رقم چهار رقم جدا می کنیم وبه جای هر چهار رقم باینری یک رقم HEX می نویسیم. (111.11011)2=(7.D8)16 (1101z10.110)2=(36.C)16   5 – تبدیل از مبنای 16 به 2 : برای اینکار بجای هر رقم در مبنای 16،یک کد چهار رقمی در مبنای 2 مینویسیم. (AC2.45)16=(1010 1100 0010.0100 0101)2 (45A.2)16=(0100 0101 1010.0010)2 6 – تبدیل از مبنای 2 به 8 : برای تبدیل از مبنای 2 به مبنای 8 از ممیز به طرف راست وچپ،اعداد را سه رقم سه رقم جدا میکنیم وبه جای هر سه رقم باینری یک رقم در مبنای 8 می نویسیم. (111.11011)2=(7.66)8 (110110.110)2=(66.6)8   7 – تبدیل از مبنای 8 به 2 : برای اینکار بجای هر رقم در مبنای 8یک کد سه رقمی در مبنای 2 می نویسیم. (761.24)8=(111 110 001.010 100)2 (2242.1)8=(010 010 100 010.001)2   8 – تبدیل از مبنای 8 به 16و برعکس: برای تبدیل از مبنای 8 به 16و برعکس می توان از مبنای 2 به عنوان واسطه استفاده کرد.

  • تبديل مبناها (مبانی سال دوم کامپیوتر)

    تبديل مبناها :<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> هر مبنايي به اندازه عدد مبنا كد دارد  كه از  صفر  شروع و تا  عدد مبنا منهاي يك  ادامه دارد  مثلاً مبناي 10 داراي 10 كد مي باشد كه  شامل 0 تا 9  مي باشد  يا مبناي 16 داراي 16 كد ميباشد كه از 0تا 15 ادامه دارد  ولي اعداد دو رقمي در اين مبنا با حروف الفبا نشان داده مي شود مبناي 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 مبناي 16 0 1 2 3 4 5 6 7 8 9 A B C D E Fيا مبناي 8  كه داراي 8 كد مي باشد كه از صفر شروع و تا 7 ادامه دارد مبناي 2 : سيستم دودئي شبيه سيستم ده دهي هستفقط به جاي يگان ،دهگان ،صدگان...در اين سيستم دوگان ،چهارگان ،هشتگان و... وجود دارد ( اين مبنا فقط داراي 2 كد صفر و يك مي باشد براي تبديل يك عدد از مبناي 10 به 2  بايد آن عدد را بر 2 تقسيم كرد روش تقسيم به شرحي است كه در اين شكل براي عدد 67 كه قرار است به مبناي 2 تقسيم شود انجام شده است  حاصل مي شود 1000011  يعني اخرين خارج قسمت و سپس باقي مانده ها از آخر به اول    براي تبديل يك عدد از مبناي 2 به 10 از ضرب متوالي ارقام آن  در تواني از عدد 2 استفاده مي كنيم  ابتدا ارقام عدد مبناي 2 را تعيين موقعيت مي كنيم  از چپ به راست و از صفر به بعد   در مثال زير دقت كنيد شماره موقعيت 0 1 2 3 4 5 6 عدد مبناي 2 1 1 0 0 0 0 1  حال هر يك از ارقام عدد مبناي 2 را در 2 به توان شماره موقعيت آن ضرب مي كنيم و حاصل جمع را بدست مي آوريم اين حاصل جمع معادل مبناي 10  عدد مي باشد  (1*2^0)+(1*2^1)+ (0*2^2)+(0*2^3)+ (0*2^4)+(0*2^5)+ (1*2^6)=67 تبديل مبناي 2 به 16 هر چهار رقم مبناي 2 را باهم يك دسته در نظر گرفته (از سمت راست دسته بندي كنيم)  و هر دسته را جداگانه  مثل تبديل از مبناي 2 به  10 محاسبه مي كنيم ولي اعداد  از 10 به بالا را بايد كد معادل آنرا از جدول بدست آورده و جايگزين نماييم مثال در عدد مبناي 2  روبرو  101111110101  آنرا به دسته هاي جهار تايي زير تجزيه مي كنيم 0101                 1111            1101 سپس هردسته را جدا از 2 به 10 تبديل مي كنيم و به ازاي اعداد از 10 بالاتر معدال مبناي 16 آن را قرار مي دهيم >13     15    5     è  D F 5==101111110101         براي تبديل باينري به شانزده شانزدهي بعد از دسته بندي چهرتايي طبق جدول اعداد را از سمت چپ جايگذاريميكنيم (111011100011100010)=(11,1011,1000,1110,0010)=3B8E 2تبديل مبناي 16 به 2  هر رقم مبناي 16 را جداگانه به مبناي 2 تبديل ميكنيم و به ازاي هر رقم مبناي 16بايد 4 رقم در مبناي 2 قرار مي دهيم 16=>2::: (7DE)=0111,1101,1110.تبديل مبناي 16 به 10 : 16=>10::: (9D7A)=(10*16^0)+(7*16^1)+(13*16^2)+(9*16^3)=40314

  • تبديل اعداد مبناي 16 به مبناي 2 در ديباگ

    برای تبدیل اعداد مبنای 16 به مبنای 2 در دیباگ به یادگیری چند مورد نیاز داریم .استفاده از فلاگ ( FLAG ) و چرخشها ( ROTATIONS ) فلاگ ( FLAG ) :برای مثال ما وقتی دو عدد FFFF و 10 را با هم جمع کنیم نتیجه چنین می شود :-RAX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000DS=137D  ES=137D  SS=137D  CS=137D  IP=0100   NV UP EI PL NZ NA PO NC137D:0100 B8FFFF        MOV     AX,FFFF-A 100137D:0100 MOV AX,FFFF137D:0103 MOV BX,10137D:0106 ADD AX,BX137D:0108-G 108AX=000F  BX=0010  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000DS=137D  ES=137D  SS=137D  CS=137D  IP=0108   NV UP EI PL NZ NA PE CY137D:0108 CD20          INT     20با جمع دو عدد که جواب آن بزرگتر از خود پیمانه ( ثبات یا متغیر )  باشد عمل سرریز یا ( OVERFLOW ) رخ میدهد که در فلاگ حمل ( NC-CY ) مشخص میشود . وقتی سرریز صورت بگیرد فلاگ به صورت CY تغییر میکند که میگوییم فلاگ ست شده است .چرخشها ( ROTATIONS ) :دستور RCL یکی دیگر از دستورات زبان ماشین است که فلاگ حمل را به سمت راست عدد مورد نظر ( در مبنای 2 )اضافه میکند و آخرین عدد سمت چپ را در فلاگ قرار میدهد .ما اگر بطور دستی یک چرخه کامل عدد خود را با استفاده از دستور فوق اجر کنیم خواهیم داشت :( برای مثال عدد B7 که در مبنای 2 ( 10110111 ) میشود :0    101101111    011011100    110111011    101110101    011101010    111010111    110101101    101011011    010110110    10110111حالا ما با دستور جدید ( ADC ) يا همان ( ADD WITH CARRY )  میتوانیم عدد مورد نظر را یک به یک با فلاگ نقلی ( حمل ) جمع کنیم و از آن استفاده کنیم .کد اسکی کاراکتر "0" عدد 30H و کاراکتر "1" عدد 31H میباشد .ما در اينجا عدد F0 را براي تبديل در bl قرار ميدهيم :-A 1000AFD:0100 MOV BL,F00AFD:0102 MOV AH,020AFD:0104 MOV CX,00080AFD:0107 MOV DL,000AFD:0109 RCL BL,10AFD:010B ADC DL,300AFD:010E INT 210AFD:0110 LOOP 1070AFD:0112 INT 200AFD:0114-G11110000Program terminated normally-

  • برنامه تبدیل مبنای 10 به مبنای 2 (++C & C)

    برنامه تبدیل مبنای 10 به مبنای 2 (++C & C)

    برنامه زبان C : تبدیل عدد در مبنای 10(دسیمال) به عدد در مبنای 2 (باینری) . برنامه اول رو خودم براتون نوشتم و برنامه دوم رو هم از یکی از وبلاگ ها گرفتم . برنامه اول تقریباً کامله و توضیحات هر بخش رو هم جلوش نوشتم . اگه مشکل داشتین بگین . . . مثل همیشه نظر یادتون نره . . . حجم فایل : 1 کیلو بایت         برنامه اولحجم فایل : 1 کیلو بایت       برنامه دوم

  • خلاصه آموزشی از درس اسمبلی

    جلسه اول   مبانی کامپیوتر 1.      مبنای 10 Decimal : (0 تا 10) 2.      مبنای 2 Binary : (0 و 1) 3.      مبنای 8  Octal : (0 تا 7) 4.      مبنای 16  Hexa Decimal : (0 to 9 , A,B,C,D,E) 1.      برای تبدیل مبنای 10 به کلیه مبناها از تصمیمات متوالی بر پایه مبنای مقصد استفاده می کنیم.. 1.      در عملیات زیر باقیمانده های عدد را بر مبنای 2 بدست می آوریم. a.      341%2=1 b.      170%2=0  عدد 170 نتیجه تقسیم 341 بر 2 است. c.       85%2=1  عدد 85 نتیجه تقسیم 170 بر 2 است. d.      42%2=0  .... e.       21%2= 1  .... f.        10%2= 0  ... g.      5%2=1 .... h.      2%2=0 .... 1 (عدد یک خارج قسمت آخرین تقسیم مورد نظر است.یعنی نتیجه تقسیم 2 بر 2) حالا از پایین به بالا شروع به نوشتن جواب ها می کنیم. (341)10 = (1,0101,0101)2 2.      در عملیات زیر نشان می دهیم چگونه مبنای 8 عدد 341 را بدست می آوریم. a.341 % 8 = 5  b.      42 % 8 = 2 عدد 42 از تقسیم 341 بر 8 بدست اومده c. 5  (عدد پنج خارج قسمت تقسیم 42 بر 8 است.) حالا از پایین به بالا اعداد را می نویسیم. (341)10 = (525)8 3.     در عملیات زیر نشان می دهیم چگونه مبانی 16 عدد 341 را بدست می آوریم. a.341%16 = 5 b.      21%16 = 5 عدد 21 خارج قسمت تقسیم 341 بر 16 هست. c. 1 ( خارج قسمت تقسیم 21 بر 16 ، 1 می شود. ) حالا از پایین به بالا اعداد را می نویسیم. عددی که بدست می آید بر مبنای 2 خواهد بود. (341)10 = (155)16   2.      تبدیل کلیه مبانا ها به مبنای 10 (an … a2 a1 a0 )r = ( T )10 T = an * rn + an-1 * rn-1 + … + a2 * r2 + a1 * r1 + a0 * r0   Ex : ( 11010100 )2 = ( 212 )10 (1 * 27 ) + ( 1 * 26 ) + ( 0 * 25 ) + ( 1 * 24 ) +(  0 * 23 ) + ( 1 * 22 ) + ( 0 * 21 ) + ( 0 * 20 ) = 128 + 64 + 16 +4 = 212     Ex : ( 324 )8 = (212)10 3 * 82 + 2 * 81 + 4 * 80 = 192 + 16 + 4 = 212   Ex : ( D4 )16 = (212)10 D * 161 + 4 * 160 = ( 13 * 16 ) + 4 = 208 + 4 = 212 3.      تبدیل مبنای 2 به 8 و بالعکس مبنای 2 مبنای 8 111 7 110 6 101 5 100 4 011 3 010 2 001 1 000 0  Ex : ( 730546 )8 = ( 111, 011 , 000 , 101 , 100 , 110 )2 Ex : ( 001 , 011 , 001 , 001 , 001 , 111 , 001 , 000 , 001 )2 = ( 131117101 )8           4.      تبدیل مبنای 2 به 16 و بالعکس مبنای 2 مبنای 16 1111 15 – F 1110 14 – E 1101 13 – D 1100 12 – C 1011 11 – B 1010 10 – A 1001 9 … … 0000 0  Ex : ( 7E5FA9 )16 = ( 0111 , 1110 , 0101, 1111 , 1010 , 1001 )2 Ex : ( 0110 , 0100 , 0011 , 1010 , 1000 , 1110, 1101 )2 = ( 643A8ED )16   شکل تبدیل مبنا ها به یکدیگر   5.      تبدیل اعداد اعشاری مبنای 10 به مبنای 2 برای تبدیل اعداد اعشاری مبنای 10 به مبنای 2 قسمت صحیح مثل تبدیل مبنای 10 به 2 هست. اما برای قسمت اعشاری باید مقدار اعشاری را در 2 ضرب کنیم. سپس قسمت صحیح جواب را می نویسیم ( 0 یا 1 ) . دوباره قسمت اعشاری ( جدید ) را در 2 ضرب می کنیم . در جواب بدست اومده قسمت صحیح ( 0 یا 1 ) را جدا می کنیم و برای جواب می نویسیم. این کار تا وقتی که قسمت اعشاری ، صفر  شود ، ادامه می دهیم. ( البته اینجا خیلی مهم نیست و تا بعد از بدست آوردن 4 یا 5 رقم اعشار ضرب کردن را ادامه نمی دهیم. ) ·        ...