آشنایی با سیستم پوزیشنال واقعا نصف راه رو برامون آسون تر میکنه ... طبق چیزی که توی پست قبل گفتم ما نیاز داریم از یک سری کارکتر محدود اعداد جدید رو بسازیم و اون کمیت ها رو قابل نمایش کنیم.
و خوشبختانه تعداد این کارکتر های محدود در بسیاری از سیستم های عددی پوزیشنال زیاد نیست بیاید از 0 تا 9 رو در نظر بگیریم و ببینیم که جه سیستم های عددی ای میتونیم درست کنیم.
0 تا 9 یعنی 0,1,2,3,4,5,6,7,8,9 که روی هم رفته ۱۰ کارکتر میشن.
حالا برای این که مفهوم پوزیشن رو براتون توضیح بدم بزارید اول یک کار کنیم اول شروع به شمردن در این سیستم میکنیم
خب ما تا کمیت ۹ رفتیم اما ده رو چیکار کنیم؟ چطور ده رو به وسیله همین کارکتر ها نشون بدیم که به معنای واقعی کمیت ده رو هم نشون بده یعنی صرفا یک شکل جدید نباشه بلکه یک مفهوم و دلیل منطقی پشت قضیه باشه که واقعا از لحاظ کمیتی هم مقدار ده رو نشون بده...
اینجاست که پوزیشن معنا پیدا میکنه ببینید اگر شما الان در یک شرکت استخدام بشید یک ارزشی دارید اون ارزش در وهله اول به این خاطر هست که شما انسان هستید و به عنوان نیروی کار یک حقوق میگیرید. اما این حقوق به پوزیشن شغلی شما هم ربط داره برای مثال اگر کارگر ساده باشید شاید مثلا ۱۵ میلیون به صورت ماهانه دریافت کنید اما اگر مدیر شرکت باشید مقدار بیشتری رو دریافت میکنید پس پوزیشن شغلی شما در ارزش شما در شرکت تاثیر داره. اینجا منظورم از ارزش حقوق شماست حالا علاوه بر پوزیشن وسع شرکت هم اهمیت داره... برای مثال اگر شما در دیجی کالا مشغول کار باشید و دوستتون در یک شرکت عادی و تازه تاسیس کار بکنه درآمدی که شما خواهید داشت به مراتب بیشتره.
پس ارزش شما در سیستم به خود شما، پوزیشن شغلی شما و سیستمی که درش کار میکنید بستگی داره.
این موضوع در سیستم های عددی و حساب کردن کمیت اعداد هم صدق میکنه.
به همین خاطر میتونیم براب اعداد پوزیشن و یک سیستم که مثل شرکت ها وسع مالی داشته باشه در نظر بگیریم.
در کامپیوتر مجموعه اعداد طبیعی از 0 شروع میشه اگر میپرسید چرا باید بگم این مجموعه معمولا برای شمارش استفاده میشه مثلا اگر در یک سیاره ای باشید که مردمش از عدد ۱۹ شروع به شمردن میکنن امکان این که قه قرارداد وجود داشته باشه که بگه اعداد طبیعی اینجا از ۱۹ شروع میشن هست. اینو گفتم چون ممکنه توی خیلی از کتاب های گسسته در مورد کامپیوتر این موضوع رو ببینید.
حالا که این رو میدونیم برای اختصاص دادن پوزیشن اعداد به اون ها کافیه که بدونیم از جایی که اعداد رو مینویسیم میتونیم پوزیشن صفر رو در نظر بگیریم مثلا:
پوزیشن : 0 1
عدد : 7 1
یه نکته هم بگم قبل از radix point یا همون نقطه اعشاری به صورت منفی پوزیشن میزاریم این خوبه بدونید برای وقتی که بخوایم شکل اعدادی رو به باینری ببریم و عددمون اعشاری باشه و بخوایم به شکل fixed-point انجامش بدیم هر چند این موضوع فعلا در سطح این مقاله نیست.
با توجه به نکته ای که گفتم پس میشه اینجوری گفت :
12.983
در این مثال برای پوزیشن گذاری کافیه اعداد سمت چپ radix point یا همون نقطه رو از 0 به بعد شماره گذاری کنیم و اعداد قبل از اون از رو به شکل منفی نمونشو ببینیم :
3- 2- 1- 0 1 ->
3 8 9 . 2 1
خب فکر میکنم الان کاملا واضح هست.
حالا کافیه وسع سیستم رو هم بفهمیم. وسع هر سیستم عددی رو میتونیم از تعداد کارکتری که داره تشخیص بدیم مثلا:
سیستم دسیمال یا ده دهی این ها رو داره: 0,1,2,3,4,5,6,7,8,9 و فقط با همینه میشه اعداد مختلف رو ساخت
یا سیستم باینری یا دو دویی این ها رو : 0,1
یا اوکتال یا هشت تایی: 0,1,2,3,4,5,6,7
خب برای این که وسع سیستم ها رو بفهمیم کافیه تعداد کارکتر ها رو بشماریم مثلا سیستم دسیمال ۱۰ تا کارکتر داره پس وسعش ده هست.
یا باینری دوتا پس وسعش دو هست.
دوتا نکته هم همینجا بگم هر سیستم عددی اگر nتایی باشه n تا عضو داره و چون به احتمال زیاد از 0 شروع میشه بیشترین کمیتی که میتونه توش حضور داشته باشه تا n - 1 هست برای روشن کردنش مثال باینری خوبه باینری یعنی دو دویی یعنی دوتایی هست پس n دوتایی هست پس دوتا عضو یا کارکتر داره.. و چون از 0 شروع میشه تا n-1 که میشه 1 بیشتر نمیره یعنی 0 و 1 همون دو عضوش هستن.
نکته بعدی هم سیستم های عددی رو به شکل ساب اسکریپت یعنی زیر نویس کنار اعداد مینویسم مثلا :
(10)10 مثلا این یعنی یک، صفر ( از سمت چپ میخونیم) در سیستم دسیمال یا ده دهی. اون عدد توی پرانتز سیستم رو میگه.
خب اگر ما تا الان وسع و پوزیشن رو دیدیم.
یه نکته باحال بگم همه اعداد پوزیشن 0 به اندازه خودشون کمیت دارند یعنی ارزششون دستخوش تغییر نمیشه مثلا 5 در پوزیشن 0 که باشه خود 5 هست. اگر دقت کرده باشید و کمی کنجکاو باشید میبینید که چند خط بالا گفتم که اون 10 رو یک، صفر میخونیم میدونید چرا؟ چون این واقعا 1,0 هست اگر بهش میخواید بگید 10 باید چیزی که من اسمشو گذاشتم مقدار واقعی یا truth value ش رو حساب کنید
برای این کار باید ارزش هر رقم رو بدست بیارید در مثال بالا. میدونیم سیستم ما ده دهی هست پس میشه گفت میدونیم که وسع سیستم ده هست. خب بریم پوزیشن ها رو هم بزاریم :
0 1
0 1
خب هر عدد در پوزیشن 0 مقدار خودشه. یعنی 0 اینجا واقعا ارزشش 0 هست اما پوزیشن های دیگه هم وسع سیستم اهمیت داره و هم پوزیشن اون عدد.
برای حساب کردن کمیت و ارزش واقعی اون اعداد کافیه مثل همون مثال شرکت بریم جلو و بگیم ارزش هر کسی به خودش وسع سیستمی که توش کار میکنه و پوزیشنش ربط داره و در اعداد به این شکل هست که خود اون عدد ضرب در وسع شرکت به توان پوزیشنش میشه .
یعنی مثلا مقدار واقعی 1 که در پوزیشن 1 و سیستم ده دهی هست به این شکل ساخته میشه :
10 = 101 × 1
و اینجوری هست که دیگه 1 مقدار واقعی 10 رو نگه میداره و در نهایت با جمع کردن مقدار واقعی هر رقم میتونیم مقدار واقعی کل عدد رو بدست بیاریم برای مثال اینجا :
0 که در پوزیشن 0 بود پس مقدار واقعی همون 0 هست.
1 که در پوزیشن 1 بود هم بدست آوردیم که 10 هست.
پس جمعشون میشه 10 + 0 که میشه 10 .
خب شاید این چیزی که گفتم برای سیستم دسیمال که ما آدما استفاده میکنیم غیر قابل استفاده به نظر بیاد ولی باید بگم این truth value ای که ازش صحبت کردیم همون مقدار هر عدد در سیستم دسیمال هست.
یعنی به واسطه همین مفهوم وسع و پوزیشن و این داستانا به راحتی میتونیم هر عددی رو در هر سیستمی به دسیمال برسونیم : مثلا فکر کنید یه سیستم ۵ تایی داریم که شمارش از 0 شروع میشه و تا 4 میرسه و حالا میخوایم مقدار 421 در این سیستم رو به دسیمال بیاریم و بفهمیم دقیقا چنده
کافیه پوزیشن هاش رو بزاریم :
210
421
پوزیشن 0 که مقدارش خودشه. پس 1 همون مقدار واقعی 1 رو داره.
2 در پوزیشن 1 قرار داره.
و 4 در پوزیشن 2
وسع سیستم ۵ هست چون از 0 که شروع کنیم تا 4 میاد و 5 عضو یا کارکتر داره.
پس برای حساب مقدار واقعی هر رقم کافیه بنویسیم :
10 = 51 × 2
100 = 52 × 4
حالا کافیه این مقادیر رو جمع کنیم : 1 + 10 + 100 = که میشه مقدار واقعی 111 یا همون 111 در سیستم عادی خودمون که روزمره باهاش کار میکنیم و بهش میگیم سیستم دسیمال یا ده دهی.
این همون روش تبدیلی هست که در دانشگاه ها برای بردن باینری به دسیمال میگن در حالی که این روش برای تمامی سیستم های عددی پوزیشنال صدق میکنه.
اگر مثل من از حفظ کردن متنفرید و میخواید اون قضیه پوزیشن 0 که میگیم همیشه خودشه رو هم ریاضیاتی ببینید اینجوری میشه :
1 = 50 × 1
پس چیز عجیبی نیست ولی این که بگیم هر چیزی توی پوزیشن صفر چون فقط خودشه و هنوز پوزیشن خاصی نداره به اندازه خودش ارزش داره انسانی تره.
به هر حال تا اینجا باشه تا قسمت بعد بریم سراغ bit string ها تا بهتون بگم چطور representation های مختلف اعداد به شکل باینری کمک میکنه تا هر کاری که میخوایم در سیستم بکنیم.
اگر دقت کرده باشید در مورد علوم کامپیوتر که حرف میزنم حرفی از برنامه نویسی نمیگم شما ممکنه مهندس کامپیوتری حتی ببینید که به ندرت برنامه نویسی کنه. علوم کامپیوتر یک زیر شاخه از ریاضیات محسوب میشه و افراد در این رشته باید ماشین رو خوب بفهمن ... و بعد با نگاه بهینه تر نسبت به الگوریتم ها و روش های مختلف شروع به نوشتن یا ساختن چیز ها کنن مثلا پروتکل http و www زبان سی پلاس پلاس، c و ... اکثرا به دست دانشمندان علوم کامپیوتر ساخته شده.
من این روز ها حالم خوب نیست. کامنت ها و سوالاتتون رو بنویسید حتما جواب میدم آخر شبا❤️ دوستتون دارم راستی بچه ها من ترم دو علوم کامپیوتر هستم🤞😂 اینا همش به لطف CS12 هست میبینمتون.