12-18-2010, 08:00 PM
شاید شما هم دوست داشته باشید بدونید معنی 0 و 1 در کامپیوتر چیه .
به صورت کلی در کامپیوتر هر جایی که جریان باشه 1 حساب میشه و هر جایی که نباشه 0 این رو شاید همتون بدونید ولی تمام داستان این نیست . 0 و 1 در دنیای کامپیوتر و لوازم الکترونیکی دیجیتالی نوعی شمارش محسوب میشه که به شمارش دودویی یا مبنای دو معروفه ، شما در زندگی روزمره از شمارش بر مبنای ده دهی استفاده میکنید - یعنی چی ؟
1234
عدد بالا رو ببینید - یک عدد بر مبنای دهدهی هست که شما اگر بخواهیم بخونیمش در زبان ریاضی به این صورت محاسبه میشه :
4 - یکان
3 - دهگان
2 - صدگان
1 - هزارگان
یعنی اینطوری
ولی در مبنای دودویی شما برای نوشتن هر عدد فقط از دو رقم استفاده میکنید 0 و 1 .
نحوه شمارشش هم درست مثل بالاست با این تفاوت که شما به جای 10 از 2 استفاده میکنید ، مثلا یک عدد 8 بیتی در دنیای کامپیوتر تشکیل شده از 8 تا صفر و یک .
یک عدد ساده رو مثال میزنم :
11111111
این عدد یک عدد 8 بیتی بر مبنای دو هست ، حالا اگر دوست دارید بدونید که این عدد چه رقمی بر مبنای دهدهی که شما میشناسید هست باید مثل بالا عمل کنید ، یعنی از راست به چپ هر هر عدد رو ضرب در 2 به توان جایگاهش برسونید و همه رو با هم جمع کنید ، چه طوری ؟ این طوری :
نتیجه میشه عدد 255 . تمام اعداد و حروف در کامپیوتر به همین صورت محاسبه میشند ، هر حرف مثلن A به عنوان کد دارای یک عدد بر مبنای دو هست ، برای حرف A داریم : 01000001 و اگر بخواهیم حساب کنیم که عددش چنده باید به صورت زیر بریم جلو ، از آنجایی که ضرب 0 در هر عددی میشه 0 - اونها رو در جمع نادیده میگیریم و فقط دو تا یک رو بر حسب جایگاهش محاسبه میکنیم .
برای اولین یک میشه یک ضربدر 2 به توان صفر که نتیجه میشه همون یک .
برای هفتمین یک میشه یک ضربدر 2 به توان 6 که نتیجه اش میشه 64 ، حالا 1 + 64 میشه 65 یعنی برای اینکه به کامپیوتر حالی کنیم که حرف A رو نشون بده باید عدد 65 رو بر مبنای دو به کامپیوتر بدیم . توجه داشته باشید که حروف بزرگ و کوچک در کامپیوتر دارای عدد های متفاوتی از هم هستند و با هم فرق دارند ، یعنی کد حرف a میشه 97 که میزان دودوییش میشه 01100001 .
به همین راحتی
اینم جدول کل کاراکتر های اسکی و کدهاشون : http://www.ascii-code.com/
توی یونیکد شیوه کدگذاری فرق داره و عدد ها هم متفاوت هستند و زبان فارسی ما هم یونیکده در نتیجه شما به یک نرم افزار میانه نیاز دارید تا بتونه با استفاده از کد های اسکی (Ascii) کد های یونیدکد رو تولید کنه ، تبدیل کنه و نمایش بده و اصولن شما با ساختار اصلی پردازشگر بدون استفاده از نرم افزار های رابط توانایی نمایش دادن حروف یونیکد رو ندارید ، چون در ساختار پردازشگر تعریف نشدند بلکه در ساختار سیستم عامل یا نرم افزاری که قراره روی یک سیستم اجرا بشه تعریف شدند که بحثش کاملن جداست . البته این رو هم بدونید که در سیستم کد گذاری اسکی هر یک از مقادیر بین 0 تا 127 یک کاراکتر خاص رو نشون میده و معمولن از 128 کاراکتر بعدی که میشود در یک بایت (واحد 8 بیتی) کدگذاری کرد یعنی 128 تا 255 برای استفاده از نمایش دادن کاراکتر های خاص مثل حروفی خارج از زبان انگلیسی استفاده میشود . (البته در کامپیوتر هایی که سیستم اسکی را توسعه داده باشند ، که امروزه تمام کامپیوتر ها این سیستم را طبق جدولی که لینک دادم توسعه دادند و کامپیوتری رو شما پیدا نمیکنید که از اسکی به صورت کامل پشتیبانی نکنه) ، حروف یونیکد ، مثل فارسی یا چینی یا عبری و ... 2 بایت یعنی 16 بیت حافظه اشغال میکنند ، یعنی کد کاراکتر های یونیکد از ترکیب 16 تا صفر و یک به وجود میاد که جدول کاملش رو میتونید در اینجا ببینید : http://www.tamasoft.co.jp/en/general-info/unicode.html
تعریف یونیکد از زبان کنسرسیوم یونیکد : http://unicode.org/standard/translations/persian.html
پ.ن 1 : بیت یعنی کوچکترین واحد شمارش در هر کامپیوتر که میتونه مقدار 0 و یا 1 رو در خودش جا بده و همون طوری که گفتم عدد 8 بیتی یعنی عددی متشکل از 8 تا صفر یا یک یا هر دو ، به همین ترتیب 16 بیتی ، 32 بیتی ، 64 بیتی الی آخر - دلیل اینکه ظرفیت ها در دیوایس های الکترونیکی عدد هایی مانند این است : 1 - 2 - 4 - 8 - 16 - 32 - 64 - 128 - 256 - 512 - 1024 و ... هم همین روش محاسبه بر مبنای 2 هست .
پ.ن 2 : این رو هم بد نیست بدونید که ما اعداد مختلفی بر مبناهای مختلفی داریم ، اعداد بر مبنای 3 - 4 - 5 و ... که طبق توضیح بالا میتونید بفهمید داستانشون چیه ولی در دنیا و علمی که ما میشناسیم ازشون استفاده نمیشه ، شاید در آینده استفاده بشه
پ.ن 3 : پردازشگر 32 بیتی و یا 64 بیتی که شنیدید ؟ مثلن میگن CPU شما اینتل X86 یا همون 32 بیتی هست ، معنیش یعنی این : در هر لحظه CPU ی شما میتونه بر روی 32 بیت از حافظه پردازش کنه ، یعنی در یک لحظه میتونه 32 تا صفر و یک رو پردازش کنه
از این ساده تر نمیتونستم توضیح بدم ، امیدوارم که به دردتون بخوره .
به صورت کلی در کامپیوتر هر جایی که جریان باشه 1 حساب میشه و هر جایی که نباشه 0 این رو شاید همتون بدونید ولی تمام داستان این نیست . 0 و 1 در دنیای کامپیوتر و لوازم الکترونیکی دیجیتالی نوعی شمارش محسوب میشه که به شمارش دودویی یا مبنای دو معروفه ، شما در زندگی روزمره از شمارش بر مبنای ده دهی استفاده میکنید - یعنی چی ؟
1234
عدد بالا رو ببینید - یک عدد بر مبنای دهدهی هست که شما اگر بخواهیم بخونیمش در زبان ریاضی به این صورت محاسبه میشه :
4 - یکان
3 - دهگان
2 - صدگان
1 - هزارگان
یعنی اینطوری
1*10^3 + 2+10^2 + 3*10^1 + 4*10^0
نقل قول:^ علامت توان هستش و * علامت ضربدر اعداد ده دهی یا مبنای ده شما برای نوشتن هر عدد از 10 رقم استفاده میکنید یعنی اعداد صفر تا نه .
ولی در مبنای دودویی شما برای نوشتن هر عدد فقط از دو رقم استفاده میکنید 0 و 1 .
نحوه شمارشش هم درست مثل بالاست با این تفاوت که شما به جای 10 از 2 استفاده میکنید ، مثلا یک عدد 8 بیتی در دنیای کامپیوتر تشکیل شده از 8 تا صفر و یک .
یک عدد ساده رو مثال میزنم :
11111111
این عدد یک عدد 8 بیتی بر مبنای دو هست ، حالا اگر دوست دارید بدونید که این عدد چه رقمی بر مبنای دهدهی که شما میشناسید هست باید مثل بالا عمل کنید ، یعنی از راست به چپ هر هر عدد رو ضرب در 2 به توان جایگاهش برسونید و همه رو با هم جمع کنید ، چه طوری ؟ این طوری :
1*2^0 + 1*2^1 + 1*2^3 + 1*2^4 + 1*2^5 + 1*2^6 + 1*2^7
نتیجه میشه عدد 255 . تمام اعداد و حروف در کامپیوتر به همین صورت محاسبه میشند ، هر حرف مثلن A به عنوان کد دارای یک عدد بر مبنای دو هست ، برای حرف A داریم : 01000001 و اگر بخواهیم حساب کنیم که عددش چنده باید به صورت زیر بریم جلو ، از آنجایی که ضرب 0 در هر عددی میشه 0 - اونها رو در جمع نادیده میگیریم و فقط دو تا یک رو بر حسب جایگاهش محاسبه میکنیم .
برای اولین یک میشه یک ضربدر 2 به توان صفر که نتیجه میشه همون یک .
برای هفتمین یک میشه یک ضربدر 2 به توان 6 که نتیجه اش میشه 64 ، حالا 1 + 64 میشه 65 یعنی برای اینکه به کامپیوتر حالی کنیم که حرف A رو نشون بده باید عدد 65 رو بر مبنای دو به کامپیوتر بدیم . توجه داشته باشید که حروف بزرگ و کوچک در کامپیوتر دارای عدد های متفاوتی از هم هستند و با هم فرق دارند ، یعنی کد حرف a میشه 97 که میزان دودوییش میشه 01100001 .
به همین راحتی
[HIGLIGHT]اینجا توضیحات اضافی در مورد کاراکتر ها و شیوه نمایششون رو مینویسم[/HIGLIGHT]
اینم جدول کل کاراکتر های اسکی و کدهاشون : http://www.ascii-code.com/
توی یونیکد شیوه کدگذاری فرق داره و عدد ها هم متفاوت هستند و زبان فارسی ما هم یونیکده در نتیجه شما به یک نرم افزار میانه نیاز دارید تا بتونه با استفاده از کد های اسکی (Ascii) کد های یونیدکد رو تولید کنه ، تبدیل کنه و نمایش بده و اصولن شما با ساختار اصلی پردازشگر بدون استفاده از نرم افزار های رابط توانایی نمایش دادن حروف یونیکد رو ندارید ، چون در ساختار پردازشگر تعریف نشدند بلکه در ساختار سیستم عامل یا نرم افزاری که قراره روی یک سیستم اجرا بشه تعریف شدند که بحثش کاملن جداست . البته این رو هم بدونید که در سیستم کد گذاری اسکی هر یک از مقادیر بین 0 تا 127 یک کاراکتر خاص رو نشون میده و معمولن از 128 کاراکتر بعدی که میشود در یک بایت (واحد 8 بیتی) کدگذاری کرد یعنی 128 تا 255 برای استفاده از نمایش دادن کاراکتر های خاص مثل حروفی خارج از زبان انگلیسی استفاده میشود . (البته در کامپیوتر هایی که سیستم اسکی را توسعه داده باشند ، که امروزه تمام کامپیوتر ها این سیستم را طبق جدولی که لینک دادم توسعه دادند و کامپیوتری رو شما پیدا نمیکنید که از اسکی به صورت کامل پشتیبانی نکنه) ، حروف یونیکد ، مثل فارسی یا چینی یا عبری و ... 2 بایت یعنی 16 بیت حافظه اشغال میکنند ، یعنی کد کاراکتر های یونیکد از ترکیب 16 تا صفر و یک به وجود میاد که جدول کاملش رو میتونید در اینجا ببینید : http://www.tamasoft.co.jp/en/general-info/unicode.html
تعریف یونیکد از زبان کنسرسیوم یونیکد : http://unicode.org/standard/translations/persian.html
[HIGLIGHT]پایان توضیحات اضافی[/HIGLIGHT]
پ.ن 1 : بیت یعنی کوچکترین واحد شمارش در هر کامپیوتر که میتونه مقدار 0 و یا 1 رو در خودش جا بده و همون طوری که گفتم عدد 8 بیتی یعنی عددی متشکل از 8 تا صفر یا یک یا هر دو ، به همین ترتیب 16 بیتی ، 32 بیتی ، 64 بیتی الی آخر - دلیل اینکه ظرفیت ها در دیوایس های الکترونیکی عدد هایی مانند این است : 1 - 2 - 4 - 8 - 16 - 32 - 64 - 128 - 256 - 512 - 1024 و ... هم همین روش محاسبه بر مبنای 2 هست .
پ.ن 2 : این رو هم بد نیست بدونید که ما اعداد مختلفی بر مبناهای مختلفی داریم ، اعداد بر مبنای 3 - 4 - 5 و ... که طبق توضیح بالا میتونید بفهمید داستانشون چیه ولی در دنیا و علمی که ما میشناسیم ازشون استفاده نمیشه ، شاید در آینده استفاده بشه
پ.ن 3 : پردازشگر 32 بیتی و یا 64 بیتی که شنیدید ؟ مثلن میگن CPU شما اینتل X86 یا همون 32 بیتی هست ، معنیش یعنی این : در هر لحظه CPU ی شما میتونه بر روی 32 بیت از حافظه پردازش کنه ، یعنی در یک لحظه میتونه 32 تا صفر و یک رو پردازش کنه
از این ساده تر نمیتونستم توضیح بدم ، امیدوارم که به دردتون بخوره .
خدای ار به حکمت ببندد دری - به کرمک زند قفل محکم تری