Friday, July 29, 2016

Range & Format Specifiers Of All Data Types (In Details)

আমার জানা মতে এই ডাটাটাইপ এর বিষয়ে সবারই কিছুনা কিছু প্রবলেম থাকেই । এমনকি অনেক বাঘা বাঘা প্রগ্রামারদের ও এই বিষয়টাতে আবছা আবছা ধারনা থাকে , ক্লিয়ার ধারনা থাকেনা । কিন্তু ডাটাটাইপ সম্পরকে ক্লিয়ার ধারনা থাকা অত্যন্ত জরুরী নাহলে সব ঠিক থাকা সত্তেও বিভিন্ন্য অনলাইন জাজ এ বিনামূল্যে খেতে হবে WA . এই  WA কিন্তু যেমন তেমন জিনিস না, প্রগ্রামারদের জন্য এইটা একটা বিভীষিকার নাম। যাইহোক নিচে এই বিষয়ে বিস্তারিত আলোচনা করা হল।

সি তে অথবা সি++ এ যে ডাটা টাইপ আছে সেগুলার টাইপ এবং কিওয়ার্ড গুলা নিচে দেয়া হল

টাইপ কিওয়ার্ড
Booleanbool
Characterchar
Integerint
Floating pointfloat
Double floating pointdouble
Valuelessvoid
Wide characterwchar_t

এইখানে নিচের দুইটা ছাড়া বাকি সবগুলাই খুব কাজের টাইপ । Character, Integer, float, double এইগুলা  আবার কয়েক ভাগে বিভক্ত যেমনঃ 
  •                          ১। signed
  •                          ২। unsigned
  •                          ৩। short
  •                          ৪। long
এইগুলা দেখে ভয় পাওয়ার কিছু নাই । তেমন কিছুই না । সাইনড মানে হইল রেঞ্জ মাইনাস থেকে প্লাস পর্যন্ত আর আন্সাইন্ড মানে হইল শুধুমাত্র প্লাস পর্যন্ত নিচের রেঞ্জ গুলা দেখলে আরো ভাল বুঝতে পারবে।

টাইপ
বাইটের সংখ্যা
বিভিন্যতা
রেঞ্জ
int
4
signed (%d)
–2,147,483,648 to 2,147,483,647 ( -2^31 to 2^31-1 )
unsigned int
4
unsigned (%u)
0 to 4,294,967,295 ( 0 to 2^32-1 )
__int8
1
char (%c)
–128 to 127 ( -2^7 to 2^7-1 )
unsigned __int8
1
unsigned char (%c)
0 to 255 ( 0 to 2^8-1 )
__int16
2
short, short int, signed short int (%hi)
–32,768 to 32,767 ( -2^15 to 2^15-1 )
unsigned __int16
2
unsigned short, unsigned short int (%hu)
0 to 65,535 ( 0 to 2^16-1 )
__int32
4
signed, signed int, int (%d)
–2,147,483,648 to 2,147,483,647 ( -2^31 to 2^31-1 )
unsigned __int32
4
unsigned, unsigned int(%u)
0 to 4,294,967,295 ( 0 to 2^32-1 )
__int64
8
long long, signed long long (%lld)
–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 ( -2^63 to 2^63-1 )
unsigned __int64
8
unsigned long long(%llu)
0 to 18,446,744,073,709,551,615 ( 0 to 2^64-1 )
bool
1
none
false or true
char
1
none
–128 to 127 by default
0 to 255 when compiled by using /J
signed char
1
none
–128 to 127 ( -2^7 to 2^7-1 )
unsigned char
1
none (%c)
0 to 255 ( 0 to 2^8-1 )
short
2
short int, signed short int (%hi)
–32,768 to 32,767  ( -2^15 to 2^15-1 )
unsigned short
2
unsigned short int(%ui)
0 to 65,535 ( 0 to 2^16-1 )
long
4
long int, signed long int(%ld)
–2,147,483,648 to 2,147,483,647 ( -2^31 to 2^31-1 )
unsigned long
4
unsigned long int(%lu)
0 to 4,294,967,295 ( 0 to 2^32-1 )
long long
8
none (but equivalent to __int64)(%lld)
–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807  ( -2^63 to 2^63-1 )
unsigned long long
8
none (but equivalent to unsigned __int64) (%lld)
0 to 18,446,744,073,709,551,615 ( 0 to 2^64-1 )
enum
varies
none
float
4
none (%f)
3.4E +/- 38 (7 digits)
double
8
none (%lf)
1.7E +/- 308 (15 digits)
long double
same as double
none (%llf)
Same as double
wchar_t
2
__wchar_t
0 to 65,535
উপরে প্রতিটা টাইপ দুইবার করে লিখা আছে যেন এই সুযোগে দুইবার করে পড়া হয়ে যাই । মোটামুটি এইগুলাই হল ডাটা টাইপের বিষয়গুলা । আশা করি হেল্পফুল হবে। এতক্ষণ আমাকে সহ্য করার জন্য ধন্যবাদ । 



No comments:

Post a Comment