رشته های گریز Escape sequences

 

هنگامی که شما در برنامه ی خود از ماراکتر های الفبایی استفاده می کنید,کامپایلر آن ها را به صورت اعداد بررسی می کند, اما آن ها را با توجه به فهرست ASCII به کاراکتر موبوطه تبدیل می کند.مقادیر دسیمال از 0 شمارش می شوند,32 کاراکتر اول عملا در صفحه ی نمایش چیزی نشان نمی دهند:آن ها none-printing characters یعنی کاراکترهای بون چاپ نام دارند.آن ها بوسیله ی فشار دادن Ctrl و یک حرف الفبا و یا یک نماد بدست می آیند.کاراکترهای هشتم تا دوازدهم استثنا می باشند و برای کنترل تعدادی از کاراکترها استفاده می شوند, آن ها رشته ها ی گریز (Escape sequences)

نام دارند.برای استفاده ی هر یک از این رشته های گریز, قبل از آن یک backslash که \ می باشد قرار می دهیم.شما می توانید ان را در دو طرف ‘ ‘ به کار ببرید.برای مثال \n برای اعلام پایان خط و شروع برنامه در یک خط جدید استفاده می شود.این مبوط به ماشین برگشت-خط تغذیه می باشد.رشته ی گریز \n می تواند به صورت زیر استفاده شود:

#include <iostream>
using namespace std;
 
int main()
{
               cout << "Sydney\nAustralia\n";
 
               return 0;
}

علاوه بر رشته ی گریز  \n می توان از کلمه ی کلیدی endl برای بردن مکان نما به خط بعدی استفاده کرد.

در اینجا فهرستی از زشته های گریز را مشاهده می نماییم:

Escape Sequence

Name

ASCII value

Description

\a

Bell (alert)

007

Makes a sound from the computer

\b

Backspace

008

Takes the cursor back

\t

Horizontal Tab

009

Takes the cursor to the next tab stop

\n

New line

010

Takes the cursor to the beginning of the next line

\v

Vertical Tab

011

Performs a vertical tab

\f

Form feed

012

 

\r

Carriage return

013

Causes a carriage return

\”

Double Quote

034

Displays a quotation mark (“)

\’

Apostrophe

039

Displays an apostrophe (‘)

\?

Question mark

063

Displays a question mark

\\

Backslash

092

Displays a backslash (\)

\0

Null

000

Displays a null character

 منبع: www.functionx.com

متغیر های کاراکتر (Character variable)

 

یک بایت برای نگهداشتن یک کاراکتر تنها استفاده می شود.یک کاراکتر یک نماد منحصر بفرد است که روی صفحه ی نمایشگر شما نمایش داده می شود.کاراکتر می تواند:

.یک حرف کوچک باشد:

 a, b, c, d, e, f, g, h, I, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z

.یک حرف بزرگ باشد:

 A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z

.یک عدد باشد:

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

.یک کاراکتر خاص باشد:

` ~ # $ ! @ % ^ & * ( { [ ) } ] | \ : ; “ ‘ + – < _ ? > , / =.

برای ایجاد (اعلان) متغیر به صورت کاراکتر(Character)  از کلمه ی کلیدی char و سپس یک نام معتبر (مطابق با قوانین نامگذاری در c++ )استفاده می کنیم.مثال زیر را مشاهده نمایید:

char Gender;

چنین متغیری توسط یک بایت ایجاد می شود,شما می توانید به متغیر مقدار آغازی بدهید.دادن مقدار به متغیر به مقدار دهی آن مربوط می شود.مقدار دهی متغیر توسط

عملگر انتساب = انجام می شود.نمونه ی زیر را مشاهده نمایید:

VariableName = Value;

از آنجاییکه متغیر char (کاراکتر) یک نماد را ارائه می دهد, برای مقدار دهی آن,مقدار مورد نظر را در میان ‘ ‘ قرار می دهیم.مثال زیر را مشاهده نمایید:

char Answer = ‘y’;

همچنین شما می توانید, یک متغیر را با قرار دادن مقدار آن بین پرانتز مانند زیر مقدار دهی نمایید:

char Answer(‘y’);

برای نمایش یک متغیر مقدار دهی شده از extractor (استخراج کننده ی), cout<< و تایپ نام متغیر بعد از آن (سمت راست آن) استفاده می کنیم.مثال زیر را مشاهده نمایید:

#include <iostream>
using namespace std;
 
int main()
{
               char category = 'H';
 
               cout << "Category: " << category;
               cout << endl;
 
               return 0;
}

اگر کاراکتر از دسته ی علامت دار باشد, می توانی آن را به صورت کاراکتر علامت دار      (signed) ایجاد کنید.این نوع متغیر یک عدد صحیح 8 بیتی خواهد بود که مقداری در محدوده ی 128- تا 128+ می تواند داشته باشد.مثال زیر را مشاهده نمایید:

#include <iostream>
using namespace std;
 
int main()
{
               signed char category = 'D';
 
               cout << "Category: " << category;
               cout << endl;
 
               return 0;
}

همچنین می توانید یک کاراکتر مثبت به صورت کاراکتر بدون علامت  unsigned charایجاد کنید.مثال زیر را مشاهده نمایید:

#include <iostream>
using namespace std;
 
int main()
{
               char letter = 'L';
               char category = 'n';
               unsigned char sound('x’);
 
               cout << "Pick  " << Pick;
               cout << category;
               cout << "Sound " << sound;
 
               return 0;
}

برای درخواست مقدار متغیر بایتی از کاربر, نام متغیر را در سمت راست عملگر cin>> تایپ نمایید و در پایان نقطه ویرگول ; قرار دهید. مثال زیر را مشاهده نمایید:

#include <iostream>
using namespace std;
 
int main()
{
               char Satisfaction, answer;
               signed char ageCategory, size;
 
               cout << "From A to Z, enter a character as your level of satisfaction: ";
               cin >> satisfaction;
               cout << "Age category(t=teen/a=Adult/s=Senior): ";
               cin >> ageCategory;
               cout << "Are you drunk(y=Yes/n=No)? ";
               cin >> answer;
               cout << "Enter your size(s=Small/m=Medium/l=Large): ";
               cin >> size;
 
               cout << "\nSatisfaction: " << Satisfaction;
               cout << "\nAge category: " << AgeCategory;
               cout << "\nYour answer: " << Answer;
               cout << "\nYour size: " << Size;
 
               return 0;
}

برای نگه داشتن مقدار صحیح در یک کاراکتر مثبت,می توانید آن را به صورتunsigned char ایجاد نمایید.مقدار این متغیر در محدوده ی 0 تا 255 خواهد بود.

منبع: www.functionx.com

ارائه کردن اعداد-نمایش یک بایت (Byte)

 

شان دادن یک بایت (Byte)

بایت یک گروه است که از هشت بیت پشت سر هم تشکیل شده است.بیت از سمت راست به چپ شمارش می شوند و شمارش آن ها از 0 آغاز می شود.اولین بیت قرار گرفته در سمت راست 0 می باشد.آن کم ارزش ترین بیت نام دارد.همچنین

Low Order bit یا Lo bit یا LOBIT نامیده می شود.آخرین بیت قرار گرفته در سمت چپ 7 می باشد.آن با ارزش ترین بیت نام دارد. همچنین High Order bit یا HI bit یا HIBIT نامیده می شود.بیت های دیگر با توجه به موقعیتی که دارند بررسی می شوند.

یک بایت به صورتیکه از دو قطعه کوچک(Nibble)  تشکیل شده بررسی خواهد شد. قطعه کوچک(Nibble)  سمت راست,از 4 بیت سمت راست تشکیل شده است

که Low Order nibbleیا Lo nibble نامیده می شود. قطعه کوچک(Nibble)  سمت چپ از 4 بیت سمت چپ تشکیل شده است که High Order nibbleیا HI nibble نامیده می شود.

با استفاده از سیستم باینری می توانید یک بایت را به صورت ترکیبی از 0 و 1 ارائه دهید.وقتی همه ی بیت ها مقدار 0 داشته باشند,بایت به صورت 00000000 بیان خواهد شد.از طرف دیگر وقتی همه ی بیت ها مقدار یک داشته باشند,بایت به صورت 11111111 بیان خواهد شد.هنگامی که اعداد رشد می کنند, خواندن آن ها مشکل می شود.بنابراین ما بیت ها را در گروه 4 تایی ارائه می کنیم.به جای نوشتن 00000000, می نویسیم 0000 0000 .این کار خواندن را آسان تر می نماید.

اگر می توانید ترکیب هایی از بیت ها با استفاده از جعبه ها بسازید, همانطور که ما این کار را برای قطعه کوچک(Nibble)  انجام دادیم,شما متوجه خواهید شد که 256 ترکیب ممکن وجو دارد.روش دیگر برای فهمیدن آن استفاده از روش بر مبنای 2 می باشد:

27 + 26 + 25 + 24 + 23 + 22 + 21 + 20
= 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
= 255

بنابراین بیشترین (maximum) مقدار دسیمال که می توانید در یک بایت ذخیره کنید 255 می باشد.

به خاطر داشته باشید که بایت, با بیت هایی که مقدار همه ی آن ها 0 است, مقدارش 0 می شود.از آنجاییکه بایت یک مقدار معتبر را حفظ می کند, تعداد ترکیبات 256=1+255 می شود.

وقتی بایت کاملا 0 باشد, این کمترین مقداری است که می تواند داشته باشد که 0000 0000 می باشد.هنگامی که همه ی بیت ها مقدار 1 داشته باشند, مقدار بایت 1111 1111 می شود, که بیشتنرین مقداری است که بایت می تواند داشته باشد و ما در سیستم دسیمال آن را معادل 255 در نظر گرفتیم.همانطورکه برای قطعه کوچک(Nibble)  انجام دادیم جدول زیر نیز برست می آید:

 

Decimal

Hexadecimal

Binary

Minimum

0

0x0

0000

Maximum

255

0xff

1111 1111

کمترین ناحیه ی ذخیره سازی که توسط (اینتل) کامپیوتر ارائه شده است یک بایت می باشد.همانطور که می دانید یک بایت از یک گروه شامل هشت بیت پشت سر تشکیل شده است.مقدار فضای ارائه شده توسط یک بایت, فقط می تواند برای ذخیره سازی یک نماد تنها استفاده شود,مانند نماد هایی که شما روی کیبورد خود می بینید.این نمادها, همچنین کاراکترها نامیده می شوند,که بوسیله ی استاندار کد آمریکا برای تبادل اطلاعات

(American Standard code for information exchange) ویا  (ASCII)در یک مجموعه فهرست سازماندهی شده اند.اما ASCII تنها از 128 عدد دسیمال (بر مبنای فرمت 7 بیت) که برای ارائه ی نمادها از 0 تا 127 شمارش می شود, استفاده می کند.برای جبران 1 بیت باقی مانده IBM از سازماندهی کاراکترهای خاص,کاراکتر های زبان خارجی,نمادهای ریاضی,گرافیک های کوچک و … استفاده کرده است.هر یک از این ماراکترها دارای معادل دسیمال, هگزادسیمال و باینری می باشند.

هر یک از کاراکترها که شما روی کیبورد خود می بینید بیان کننده ی یک مقدار عددی است, گرچه آن ها به صورت یک عدد, یک حرف, یا یک نماد ظاهر شده اند, هر یک از آن ها به صورت یک کاراکتر بررسی می شود.برای نمایش هر کاراکتر روی صفحه ی نمایش می توانید از عملگر  cout << استفاده نمایید و کاراکتر ها را در بین ‘ ‘ قرار دهید.مثال زیر را مشاهده نمایید:

#include <iostream>
using namespace std;
 
int main()
{
               cout << 'a';
 
               return 0;
}

منبع: www.functionx.com

ارائه کردن اعداد-ترکیب 4 بیت (Bit)

 

رکیب 4 بیت (Bit)

اولین بیت در سمت راست قطعه ی کوچک (Nibble) قرار دارد.این بیت Low Order bit  یا LO bit  نام دارد.همچنین کم ارزش ترین بیت(least significant bit) نیز نامیده می شود.آخرین بیت در سمت چپ قطعه ی کوچک (Nibble) قرار دارد که High Order bit یا HI bit  نام دارد.همچنین با ارزش ترین بیت(most significant bit)  نیز نامیده می شود.بیت سمت راست صفر به شمار می آید.بیت سمت چپ 3 به شمار می آید.بیت های دیگر با توجه به موقعیتی که دارند بیت 1 و بیت 2 می باشند.

هر بیت می تواند یکی از دو وضعیت را دارا باشد.هنگامی که جعبه خالی است, مقدار 0 می گیرد.درغیر اینصورت مقدار آن 1 خواهد بود.یک گروه 4بیت پشت سر هم را می توان به صورت زیر ترکیب کرد:

ترکیب های باینری بالا این نتیجه را تولید خواهد کرد:

0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111 = 16

هنگام استفاده از سیستم دسیمال (ده دهی) این ترکیب, نتیجه ی زیر را خواهد داشت:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,15.

همانطور که دیدیم یک قطعه ی کوچک (Nibble) به صورت یک گروه که از 4 بیت تشکیل شده است معرفی می شود.همچنین این سیستمی است که کامپیوتر برای شمارش بیت های داخلی استفاده می نماید.گاهی اوقات در برنامه ی شما یا در فایل های کمکی (Help) شما با عددی مواجه می شوید که کمتر از 4 بیت است, مانند:10 یا 01 یا 101.چطور آن را با قطعه ی کوچک (Nibble)  تطبیق می دهید؟روشی که استفاده می شود این است که به جای هر بیت تعریف نشده یک صفر قرار می دهیم.در اینصورت عدد باینری 10 به صورت 0010 خواهد بود.عدد 01 به صورت 0001 خواهد بود.عدد 101 به صورت 0101 خواهد بود.این روشی با ارزش است و این امکان را فراهم می آورد, که شما یک عدد باینری را با تقسیم آن بر چهار قسمت بشناسید.

وقتی همه ی بیت های یک قطعه ی کوچک 0 باشند,کمترین مقدار را دارید که 0000 می باشد.هر ترکیب دیگری به جز آخری حداقل یک بیت 0 دارد.وقتی که مقدار تمام بیت ها 1 باشد, بیشترین مقدار ممکن برای یک قطعه ی کوچک (Nibble)  خواهد بود.کمترین مقدار در سیستم دسیمال 0 می باشد.بیشترین مقدار در سیستم دسیمال به صورت 24 بیان می شود (2 بیانگر این است که 2 وضعیت ممکن داریم که 0 و 1 می باشد, 4 بیانگر این است که 4 ترکیب ممکن داریم) , که 16 است, زیرا 24 = 16.

همانطور که می بینید, هنگامی که یک مقدار ترکیب مختلفی از بیت های ارائه شده است, خواندن سیستم باینری بسیار مشکل می شود.برای آسان تر شدن آن کامپیوتر از سیستم هگزادسیمال برای ارائه ی بیت ها استفاده می نماید.با توجه به جعبه ی ترکیبی بالا, می توانیم هر 4 بیت از 16 ترکیب بالا را با استفاده از سیستم دسیمال, هگزادسیمال و باینری ارائه نماییم.به صورت زیر:

Decimal

Hexadecimal

Binary

0

0

0000

1

1

0001

2

2

0010

3

3

0011

4

4

0100

5

5

0101

6

6

0110

7

7

0111

8

8

1000

9

9

1001

10

A

1010

11

B

1011

12

C

1100

13

D

1101

14

E

1110

15

F

1111

جدولی از قرار داد های عددی 

هنگامی که یک مقدار باینری 4 بیتی دارید, می توانید با مراجعه به حدول بالامقدار دسیمال یا هگزادسیمال آن را بدست آورید.برای همین ممکن است شما آن را از حفظ داشته باشید.

یک قطعه ی کوچک (Nibble),که از 4 بیت پشت سرهم  تشکیل شده است دارای مقدار ماکزیمم (maximum) و مینیمم (minimum) در هر سیستم می باشد.به صورت زیر: 

 

Decimal 

Hexadecimal 

Binary

Minimum 

0

0x0

0000

Maximum 

15

0xf

1111

 اگرچه کامپایلر c++ ,4 بیت پشت سرهم را می شناسد,اما نمی توان هر مقداری را در یک قطعه ی کوچک (Nibble) ذخیره نمود.به هر حال می توانید بیت هایی از یک قطعه ی کوچک را (Nibble) بسازید.

منبع: www.functionx.com

ارائه کردن اعداد

یک بیت(Bit)

کامپیوتر (یا یک کامپیوتر اینتل یا یک کامپیوتر که با میکروپروسسور اینتل کار می کند) از سیستم باینری (دو دویی) برای ارائه ی اطلاعات استفاده می نماید.یک قطعه از اطلاعات در کامپیوتر  داده نمامیده می شود.

کامپیوتر داده را تنها با استفاده از مقادیر 0 و 1 بیان می کند.برای توضیح اجازه دهید کامپیوتر را یک جعبه ی کوچک که برای ارائه مقادیر استفاده می شود,در نظر بگیریم.هنگامی که جعبه خالی است مقدار آن صفر خواهد بود و هنگامی که جعبه پر است مقدار آن 1 خواهد بود.جعبه تنها یکی از این دو مقدار را می تواند داشته باشد.

از آنجاییکه جعبه تنها یکی از دو حالت را می تواند داشته باشد,می توانید از آن برای بررسی هر چیزی که می تواند یکی از دو حالت را داشته باشد استفاده نمایید.برای مثال:صحیح-غلط, والدین-کودکان, خاموش-روشن, تخفیف-بدون تخفیف, مرد-زن, بله خیر,… .این روش بیان کردن مقادیر,سیستم باینری (دو دویی)نامیده می شود.در کامپیوتر مقادیر صفر و یا یک استفاده می شوند که عدد نام دارند.روش استفاده شده ,برای بیان چنین مقادیری,binary  digit  (رقم دو دویی) نامیده می شود.که مختصر شده ی آنbit  (بیت) می باشد.بیت (binary digit) بنیادی ترین بیان سیستم حساب کامپیوتر می باشد.اگرچه این برای کامپیوتر معتبر می باشد, اما میکروپروسسور اینتل, نمی تواند آن را به عنوان یک  متغیر معتبر بداند.اما  سرانجام شما می توانید داده را در سطح بیت بسازید.

اگرچه کامپایلر c++ یک بیت را می شناسد,اما نمی توانید یک متغیر را در یک بیت ذخیره نمایید.گرچه سرانجام می توانید داده های ذخیره شده در یک بیت را بسازید.

یک بیت تنها برای بیان یک قطعه ی کوچک از اطلاعات استفاده می شود.برای بدست آوردن اعداد موثر,کامپیوتر بیت ها را ترکیب می کند.اولین ترکیب از بیت ها شامل یک گروه 4 بیتی پشت سر هم می باشد.

شمارش بیت ها از 0 و سپس 3,2,1 می باشد و از راست به چپ شمارش می شوند.

منبع: www.functionx.com

علامت دار وبدون علامت

اعدادی که ما برای شمارش استفاده می نماییم به طور افزایشی 0 ,2,1 و … می باشند و همین طور به مقدار دلخواه افزایش می یابند.اعدادی که از صفر شروع شده و افزایش می یابند اعداد مثبت نام دارند.طبق قرارداد نیازی نیست که شما به کامپیوتر و یا به کسی بگویید که این اعداد مثبت هستند,تنها با نمایش یا گفتن,آن ها مثبت در نظر گرفته می شوند.این مبنای شمارش قسمت های شما می باشد.

اما اعدادی وجود دارند که در مقادیر کاهشی به شمار می آیند,از قبیل اعدادی که از 1- شروع می شوند و کاهش می یابند یعنی  2-,3-,4- و … .این اعداد منفی در نظر گرفته می شوند.

هنگامی که شما یک عدد را به صورت معمولی مانند 42 , 502 ,یا 1250 می نویسید,آن یک عدد مثبت می باشد.اگر شما می خواهید یک عدد را به صورت منفی بیان کنید در سمت چپ  –  قرار می دهید.نماد – یک علامت (sign) نامیده می شود.بنابراین اگر عددی نماد – را نداشت, c++ (یا کامپایلر ) آن را به صورت یک عدد بدون علامت (unsigned) بررسی می کند.در c++ اگر شما یک متغیر ایجاد کنید که بخواهد یک مقدار عددی را بیان کند و آن را مقدار دهی نکنید (مقداری به آن اختصاص ندهید) کامپایلر ملاحظه می کند که متغیر می تواند یک مقدار علامت دار یا بدون علامت را حفظ نماید.اگر می خواهید ممکن سازید که کامپایلر بداند که باید تنها یک مقدار مثبت را بگیرد,متغیر را به صورت بدون علامت(unsigned)  ایجاد کنید.

منبع: www.functionx.com

سیستم هگزا دسیمال(شانزده دهی)

در حالیکه سیستم دسیمال (ده دهی) از 10 نماد (که همگی عدد هستند)استفاده می کند,سیستم هگزا دسیمال (شانزده دهی)از شانزده نماد برای ارائه ی(بیان) اعداد استفاده می نماید.از آنجاییکه زبان لاتین تنها شامل 10 عدد است و ما نمی توانیم عدد جدیدی بسازیم,برای جبران آن,سیستم هگزادسیمال (شانزده دهی)از کاراکترهای الفبایی استفاده می کند.بعد از شماره های 0 تا 9 ,سیستم از حروف استفاده می کند تا اینکه 16 مقدار متفاوت داشته باشد.حروف استفاده شده a, b, c, d, e,f و یا معادل حرف بزرگ آن ها  A, B, C, D, E, Fمی باشند.سیستم هگزا دسیمال به صورت زیر می باشد:

 

 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f

و یا:  

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

 

بار دیگر برای تولید عدد این شانزده نماد را با هم ترکیب خواهیم کرد.مثال هایی از اعداد هگزادسیمال  293, 0, df, a37, c23b34, ffed54هستند.عدد 8026 در بیان دسیمال  و هگزا دسیمال یکسان می باشد.

به کلمه ی fed  نگاه کنید,آیا نام یک نمایندگی فدرال (federal agency) است؟ و یا یک عدد هگزادسیمال است؟آیا CAB بیانگر یک تاکسی,سازمان اجتماعی یا یک عدد هگزادسیمال است؟

از حالا برای بیان تفاوت,بین عدد دسیمال و هگزادسیمال,عدد هگزا دسیمال با 0X یا 0x آغاز خواهد شد.عدد توسط ترکیب هگزادسیمال معتبر ایجاد خواهد شد.حرف می توانند بزرگ یا کوچک باشد.

اعداد هگزادسیمال:0x273, 0xfeaa, 0Xfe3, 0x35FD, 0x32F4e
اعداد غیر هگزادسیمال: 0686, ffekj, 87fe6y, 312

چرا هگزادسیمال را آمورزش می دهیم؟ و یا چرا از هگزا دسیمال استفاده می کنیم ؟

زمانی که کامپیوتر سیستم دسیمال را که شما هر روز بر مبنای آن بخش ها را شمارش می کنید در ک نکند, هنگامی که ما آشنایی با سیستم باینری (دو دویی) نداریم,سیستم هگزا دسیمال یم سیستم واسطه فراه می آورد.همچنین سیستم هگزادسیمال کلمات کوتاه تری نسبت به سیستم دسیمال برای ارائه ی (بیان) یک عدد ایجاد می کند.

منبع: www.functionx.com

سیستم دسیمال (ده دهی)

 

سیستم عددی که ما همیشه از آن استفاده می کنیم از ده نماد استفاده می کند,که 0,1,2,3,4,5,6,7,8,9 می با شند.هر یک از این نمادها یک عدد (رقم) نام دارد.با استفاده از ترکیب این اعداد,شما می توانید مقادیر عددی از هر نوعی را نمایش دهید,از قبیل 240,3826,234523.این سیستم ارائه مقادیر عددی سیستم دسیمال (ده دهی) نامیده می شود,چرا که از ده رقم استفاده می نماید.

هنگامی که یک عدد با 0 آغاز می شود,محاسبه گر یا کامپیوتر صفر آن را نادیده می گیرد.

در نتیجه 0248 همان 248 خواهد بود و یا 030426 همان 30426 خواهد بود.

از حالا ما می خواهیم یک مقدار عددی در سیستم دسیمال که بدون صفر شروع می شود را معرفی نماییم:

مقادیر دسیمال: 3849, 279, 917293, 39473
مقادیر غیر دسیمال:0237, 0276382, k2783, R3273

سیستم دسیمال گفته شده برای استفاده بر مبنای 10 می باشد.

این امکان را به وجود می آورد که هر عددی را بشناسید و بتوانید آن را بخوانید.

سیستم کاری در حال افزایش به صورت 10000,1000,100,10,0,… می باشد.

در سیستم دسیمال (ده دهی)0برابر 0*100 می باشد(که 1*0 همان 0 خواهد بود)

1برابر1*100 می باشد(که 1*1 همان 1 خواهد بود)

2برابر 2*100 می باشد(که 1*2 همان 2 خواهد بود)

9برابر 9*100 می باشد(که 1*9 همان 9 خواهد بود).این اعداد بین 10 تا 99 با فرمول ( * 101 عدد سمت راست+ * 100 عدد سمت چپ)بیان می شوند.برای مثال:

32 = 3*101 + 2*100 = 3*10 + 2*1 = 30 + 2 = 32

به همین روش:

85 = 8*101 + 5*100 = 8*10 + 5*1 = 80 + 5 = 85

روش دیگر این است که شما اعداد را با استفاده از جدول زیر می توانید بیان نمایید:

2751 = 2*103 + 7*102 + 5*101 + 1*100 = 2*1000 + 7*100 + 5*10 + 1 = 2000 + 700 + 50 + 1 = 2751

67048 = 6*104 + 7*103 + 0*102 + 4*101 + 8*100 = 6*10000 + 7*1000+0*100+4*10+8*1 = 67048

اما وقتی که اعداد بزرگتر می شوند خواندن آن ها مشکل تر می شود برای مثال:

 

 

etc

Add 0 to the preceding value

1000000

100000

10000

1000

100

10

0

 

برای آسانتر شدن خواندن عدد می توانید هر سه رقم را از سمت راست توسط کاما از هم جدا سازید.در اینصورت عدد شما به به صورت 279,174,394,327 خواهد شد.اما اینکار را تنها بر روی کاغذ می توانید انجام دهید و در برنامه انجام اینکار ممکن نیست.کامپایلر کاما را نمی شناسد..

چرا از سیمتم دسیمال استفاده می شود؟زیرا برای ارائه کردن اعداد این تنها سیستمی است که شما و ما با آن آشنا هستیم.

منبع: www.functionx.com

سیستم باینری (دو دویی)

هنگامی که شما توسط انتساب اطلاعات,اطلاعات را به برنامه می دهید,کامپیوتر قطعه ی اطلاعات شما برای اینکه تشخیص دهد صحیح (true) یا غلط  (false)بررسی خواهد کرد.

در ارزیابی قطعه,از دو نماد 0 و 1 استفاده می کند.وقتی اطلاعات شما صحیح باشد کامپیوتر مقدار 1 به آن می دهد.در غیر اینصورت مقدار آن صفر خواهد بود.بنابراین سیستمی که کامپیوتر با استفاده از آن شناسایی می کند از دو نماد 0 و 1 تشکیل شده است.در صورتیکه اطلاعاتی که به کامپیوتر می دهید بزرگتر از یک قطعه ی ساده باشد,کامپیوتر برای آن نوعی عدد را با ترکیب 0 و 1 تولید می کند.این اعداد می توانند مانند 1, 100, 1011, یا 1101111011 باشند.

بنابراین چون  این سیستم تنها از دو علامت 0 و 1 استفاده می کند,سیستم باینری (دو دویی) نامیده می شود.هنگامی که یک عدد باینری (دو دویی) مانند 1101 را می خوانید,نباید آن را هزار و صد و یک تلفظ نمایید,این طور خواندن صحیح نمی باشد.شما باید عدد را به صورت صفر و یک تلفظ کنید.1101 به صورت یک,یک,صفر,یک خوانده می شود.

دنباله ی سیستم باینری ( دو دویی) بستگی دارد به عددی که شما نیاز به بیان آن دارید.

چرا سیستم باینری آموزش داده می شود؟شما نیاز به دانستن آنچه در مورد سیستم باینری (دو دویی) گفته شد دارید,چرا که شما قصد دارید دستوراتی برای کامپیوتر بنویسید و کامپیوتر زبان انگلیسی را نمی فهمد.

منبع: www.functionx.com

سیستم های عددی

معرفی

هنگامی که شما قصد استفاده از کامپیوتر را دارید ,اگر خاموش باشد اولین کاری که انجام می دهید  روشن کردن کامپیوتر است.هنگامی که کامپیوتر در حال بالا آمدن است (بوت می شود), شما می توانید سر و صدای آن را بشنوید(اما حال کامپیوتر هایی هستند که (خیلی) ساکت هستند).به نظر می رسد که کارهایی درون آن اتفاق می افتد.کارهایی که معمولا شما به آنها دقت نمی کنید.در حقیقت , هنگامی که سر و صدا قطع می شود , اگر همه چیز خوب بود , کامپیوتر آنچه را که سیستم عامل نامیده می شود بار گذاری (Load)  کرده است.اگرچه کامپیوتر بالا آمده است و شما می توانید تعدادی تصویر روی صفحه ببینید ,برنامه ی دیگری غیر از سیستم عامل  (و تعدادی از چیزها که ما در مورد آن ها بحث نمی کنیم که برنامه های کاربردی(utilities) نام دارند( در دسترس نیست:شما به کامپیوتر می گویید,”من از برنامه یA  می خواهم استفاده کنم”.بعد از کلیک کردن روی برنامه ی انتخابی با توجه به برنامه ای که شما آن را فراخوانی کرده اید یک بار دیگر شما سر و صدا خواهید شنید,برخی برنامه ها برای بالا آمدن زمان بیشتری نسبت به برنامه های دیگر می برند.وقتی شما یک برنامه را فراخوانی می کنید, یک برپایی نخستین وجود خواهد داشت,تا برنامه به طور کامل آماده شود. عدد ها ,کاراکترها,کلمات با معنی,تصاویر,گرافیک ها,و… قسمتی از برنامه هستند.

از این قبیل چیزها بسیار هستند,بنابراین این ها با اندازه ی برنامه و زمان بالا آمدن آن رابطه خواهند داشت.شغل شما برنامه نویسی می باشد,که شامل ساختن از این قبیل برنامه ها و در دسترس قرار دادن آن ها برای کامپیوتر و مردمی که از کامپیوتر استفاده می کنند می باشد.

برای نوشتن برنامه,شما از کاراکترهای الفبایی استفاده خواهیدکرد که شامل:

a, b, c, d, e, f, g, h, I, j, k, l, m, n, o, p, q, r, s, t, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J,K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z

هستند.همچنین شما از نمادهای عددی 9,8,7,6,5,4,3,2,1,0 استفاده خواهید کرد.

همچنین,شما از نمادهایی که به سادگی قابل خواندن نیستند استفاده خواهید کرد,اما آن ها قسمتی معمولی از زبان هستند.آن ها

` ~ ! @ # $ % ^ & * ( ) _ + – = : “ < > ; ‘ , . /

هستند.تعدادی از این نمادها در c++  تا زمانی که تعدادی دیگر استفاده نشده باشند به کار برده می شوند.هنگام ساخت برنامه حروف و یا نماد ها را برای ساخت کلمات انگلیسی یا دستورات زبان ترکیب خواهید کرد.برای مثال ذستوراتی که می خواهید به کامپیوتر بدهید می تواند شامل,شمارش تعداد پرتقال ها,تبدیل آب به سوپ باشد.

بهد از اینکه شما دستور را تایپ نمودید کامپایلر آن را به زبان ماشین ترجمه خواهد کرد.چرا کامپایلر دستورات شما را مستقیم به کامپیوتر نمی فرستد؟

زیرا کامپیوتر زبان شما را متوجه نمی شود.کامپیوتر هر یک از دستورات شما را به صورت گروهی از اعداد درک می کند.اگر شما از کامپیوتر در خواست کنید که از نارنجی استفاده کند , آن دستور شما را به مجموعه ای از اعداد ترجمه خواهد کرد.

چنانکه شما دستورات بیشتری بدهید یا کلمات بیشتری بسازید,کامپیوتر آن ها را در حافظه در مقدار فضای معینی برای هر دستور و هر قسمت ذخیره می کند.چقدر فضا لازم است ؟چطور کامپایلر این فضا را معین می سازد؟

سه سیستم عددی که برنامه تان با آن با دخالت یا بدون دخالت شما سروکار دارد وجود دارد.سیستم عددی روش هایی را  که شما هر روز  از آن ها برای حساب کردن استفاده می کنید فراهم می آورد.

سیستم هگزادسیمال (شانزده دهی)یک سیستم واسطه است که ممکن می سازد که شما متوجه شوید  چطور کامپیوتر با اعداد تغذیه می شود.سیستم باینری (دو دویی)یک سیستم حقیقی است که کامپیوتر برای فهمیدن (تقریبا) هر چیزی که در برنامه است از آن استفاده می نماید.

منبع: www.functionx.com