C++ প্রোগ্রামিং-এ, হেক্সাডেসিমেল মান মুদ্রণ একটি সাধারণ প্রয়োজন। মেমরি ঠিকানার সাথে কাজ করা হোক না কেন, বিটওয়াইজ অপারেশন পরিচালনা করা হোক বা ডেটার হেক্সাডেসিমাল উপস্থাপনা নিয়ে কাজ করা হোক না কেন, হেক্স মানগুলি কার্যকরভাবে প্রদর্শন করার জন্য বিভিন্ন পদ্ধতি উপলব্ধি করা অপরিহার্য। এই নিবন্ধটি C++-এ হেক্সাডেসিমেল মান প্রিন্ট করার বিভিন্ন পদ্ধতি এবং কৌশলগুলি অন্বেষণ করে, তাদের অ্যাপ্লিকেশন এবং ব্যবহারের ক্ষেত্রে আলোকপাত করে।
Std::hex ব্যবহার করে হেক্স মান প্রিন্ট করা
C++ এ হেক্সাডেসিমেল মান প্রিন্ট করার একটি সহজ উপায় হল
# অন্তর্ভুক্ত করুন
# অন্তর্ভুক্ত করুন
int প্রধান ( ) {
int decimalValue = 907 ;
std::cout << 'হেক্সাডেসিমেল মান হল:' << std::hex << দশমিক মান << std::endl;
ফিরে 0 ;
}
এই উদাহরণে, 'std::hex' ম্যানিপুলেটরটি 'std::cout' আউটপুট স্ট্রীমে প্রয়োগ করা হয় 'decimalValue' পূর্ণসংখ্যা প্রিন্ট করার আগে। হেক্স মান প্রিন্ট করার পরে, স্ট্রীমটি তার স্বাভাবিক আচরণে ফিরে আসে। এই কোডটি সি++-এ 'std::hex' ম্যানিপুলেটর ব্যবহার করে কীভাবে হেক্সাডেসিমেল মান প্রিন্ট করতে হয় তা পুরোপুরি দেখায়। এখানে কোডের একটি ব্রেকডাউন রয়েছে:
হেডার
প্রধান ফাংশন
'int decimalValue = 907;' “int” টাইপের “decimalValue” ভেরিয়েবল ঘোষণা করে এবং 907 এর দশমিক মানের সাথে বরাদ্দ করে।
'std::cout << 'হেক্সাডেসিমেল মান হল: ' << std::hex << decimalValue << std::endl;' 'হেক্সাডেসিমেল মান:' প্রিন্ট করে এবং তারপরে 'ডেসিমাল মান'-এর হেক্সাডেসিমেল উপস্থাপনা করে।
'std::hex' আউটপুট স্ট্রীমকে নিম্নলিখিত মানটিকে হেক্সাডেসিমেল হিসাবে ব্যাখ্যা করার নির্দেশ দেয়। 'decimalValue' ভেরিয়েবলে হেক্সে রূপান্তরিত করার জন্য দশমিক মান রয়েছে। 'std::endl' মুদ্রণের পরে একটি নতুন লাইন অক্ষর সন্নিবেশ করায়। অবশেষে, এই কোডটি এখন 'হেক্সাডেসিমেল মান: 38B' প্রিন্ট করে যেমন আপনি নিম্নলিখিত আউটপুট স্নিপেটে দেখতে পাচ্ছেন:
“%x” ফরম্যাট স্পেসিফায়ার ব্যবহার করে হেক্স মান প্রিন্ট করা
যারা সি প্রোগ্রামিং ভাষার সাথে পরিচিত তাদের জন্য, 'printf' ফাংশনটি সংক্ষিপ্তভাবে C++ এ হেক্সাডেসিমেল মান প্রিন্ট করে। যদিও C++
int প্রধান ( ) {
int decimalValue = 1256 ;
printf ( 'প্রিন্টএফ সহ হেক্সাডেসিমেল মান হল: %x৷ \n ' , দশমিক মান ) ;
ফিরে 0 ;
}
এই উদাহরণে, 'printf' ফাংশনের মধ্যে '%x' ফরম্যাট স্পেসিফায়ার নির্দেশ করে যে সংশ্লিষ্ট আর্গুমেন্টটি হেক্সাডেসিমেলে প্রিন্ট করা উচিত। প্রদত্ত কোডটি C++ এ 'printf' ব্যবহার করে হেক্সাডেসিমেল মান প্রিন্ট করার একটি নিখুঁত উদাহরণ। আসুন এটি ভেঙে দেওয়া যাক:
হেডার
প্রধান ফাংশন
'int decimalValue = 1256;' “decimalValue” নামের একটি পূর্ণসংখ্যা ভেরিয়েবলে 1256-এর দশমিক মান ঘোষণা করে এবং বরাদ্দ করে। 'printf'-এ 'printf'('printf-এর সাথে হেক্সাডেসিমেল মান হল: %x\n', decimalValue);' স্টেটমেন্ট ফরম্যাট করা আউটপুট প্রিন্ট করার জন্য 'printf' ফাংশনকে কল করে। '%x' হল 'ফরম্যাট স্পেসিফায়ার' যা নির্দেশ করে যে নিম্নলিখিত আর্গুমেন্টটি ছোট হাতের হেক্সাডেসিমেল সংখ্যা হিসাবে প্রিন্ট করা উচিত। অবশেষে, '\n' প্রিন্ট করার পরে একটি নতুন লাইন অক্ষর সন্নিবেশ করায়। এই কোডটি নিম্নোক্ত আউটপুট স্নিপেটে দেখা মত কনসোলে 'প্রিন্টএফ সহ হেক্সাডেসিমেল মান 4e8' আউটপুট করে:
প্যাডিং দিয়ে হেক্স ভ্যালু প্রিন্ট করা
হেক্সাডেসিমেল মান, বিশেষ করে মেমরি অ্যাড্রেস নিয়ে কাজ করার সময়, একটি সামঞ্জস্যপূর্ণ প্রস্থ বা প্যাডিং প্রায়ই কাম্য। এটি
# অন্তর্ভুক্ত করুন
int প্রধান ( ) {
int decimalValue = 47 ;
std::cout << 'প্যাডিং সহ হেক্সাডেসিমেল মান হল: ' << std::setw ( 8 ) << std::hex << দশমিক মান << std::endl;
ফিরে 0 ;
}
এই উদাহরণে, std::setw(8) নিশ্চিত করে যে হেক্সাডেসিমেল মানটি ন্যূনতম 8 অক্ষরের প্রস্থের সাথে প্রিন্ট করা হয়েছে। এটি কলামে বা মেমরি ঠিকানাগুলির সাথে মানগুলি সারিবদ্ধ করার জন্য বিশেষভাবে কার্যকর।
আসুন কোডটি ভাঙ্গি এবং প্রতিটি লাইন একে একে বুঝতে পারি:
হেডার
প্রধান ফাংশন
'int decimalValue = 47;' “decimalValue” নামের একটি পূর্ণসংখ্যা ভেরিয়েবলে 47-এর দশমিক মান ঘোষণা করে এবং বরাদ্দ করে।
'std::cout << 'প্যাডিং সহ হেক্সাডেসিমেল মান হল: ' << std::setw(8) << std::hex << decimalValue << std::endl;' স্টেটমেন্ট সেটw(8) প্যাডিং সহ 47 এর হেক্সাডেসিমেল সংখ্যা প্রিন্ট করে। 'std::setw(8)' 8 এর আর্গুমেন্ট সহ 'std::setw' ম্যানিপুলেটর প্রয়োগ করে, ন্যূনতম 8 অক্ষরের আউটপুট প্রস্থ নির্দিষ্ট করে।
'std::hex' প্রয়োগ করে 'std::hex' ম্যানিপুলেটর যা প্রদত্ত উদাহরণগুলির একটিতে ব্যাখ্যা করা অনুসারে পরবর্তী মানটিকে হেক্সাডেসিমেল হিসাবে ব্যাখ্যা করতে বলে। নিম্নলিখিত আউটপুট কনসোলে মুদ্রিত হয়:
বাইট ডেটার হেক্স মান প্রিন্ট করা
বাইট ডেটা নিয়ে কাজ করার সময়, প্রতিটি বাইটকে দুই-অঙ্কের হেক্সাডেসিমেল মান হিসাবে উপস্থাপন করা সাধারণ। প্রস্থ 2 এ সেট করা হয়েছে তা নিশ্চিত করে এবং অগ্রণী শূন্য পূরণ করতে 'std::setfill('0')' ব্যবহার করে এটি অর্জন করা যেতে পারে। বাইট ডেটার হেক্স মানগুলি কীভাবে প্রিন্ট করা যায় তা বুঝতে আপনাকে সাহায্য করার জন্য নিম্নলিখিত একটি উদাহরণ দেওয়া হল:
# অন্তর্ভুক্ত করুন# অন্তর্ভুক্ত করুন
int প্রধান ( ) {
স্বাক্ষরবিহীন char byteData = 0xAB;
std::cout << 'বাইট ডেটার হেক্সাডেসিমেল উপস্থাপনা হল: '
<< std::setw ( 2 ) << std::সেটফিল ( '0' ) << std::hex << স্ট্যাটিক_কাস্ট < int > ( বাইটডেটা )
<< std::endl;
ফিরে 0 ;
}
এখানে, 'std::setw(2)' নিশ্চিত করে যে প্রতিটি বাইট ন্যূনতম 2টি অক্ষরের প্রস্থের সাথে উপস্থাপন করা হয়েছে এবং 'std::setfill('0')' উল্লেখ করে যে প্রস্থ পূরণ করতে অগ্রণী শূন্য ব্যবহার করা উচিত।
পূর্বে দেওয়া এই প্রোগ্রামটি নির্দিষ্ট বিন্যাস সহ C++ এ হেক্সাডেসিমেল মান মুদ্রণ করার জন্য আরও উন্নত পদ্ধতির প্রদর্শন করে। আরও ভাল বোঝার জন্য আসুন এটিকে ভেঙে দিন:
হেডার
প্রধান ফাংশন
প্রধান ফাংশনে, একটি স্বাক্ষরবিহীন 'বাইটডেটা = 0xAB;' char সংজ্ঞায়িত করা হয় যা “byteData” নামে একটি স্বাক্ষরবিহীন চার ভেরিয়েবল ঘোষণা করে এবং এটিতে “0xAB”-এর হেক্সাডেসিমেল মান নির্ধারণ করে। 'std::cout << 'বাইট ডেটার হেক্সাডেসিমেল উপস্থাপনা হল: ':' স্টেটমেন্ট আউটপুট স্ট্রীম ব্যবহার করে কনসোলে বার্তা আউটপুট করে।
“<< std::setw(2) << std::setfill(‘0’) << std::hex << static_cast
std::setw(2): এটি ন্যূনতম আউটপুট প্রস্থ 2 অক্ষরে সেট করে।
std::setfill('0'): এটি নির্দিষ্ট করে যে ন্যূনতম প্রস্থে পৌঁছানোর জন্য প্রয়োজনীয় যে কোনও প্যাডিং '0' অক্ষর দিয়ে পূরণ করা উচিত।
std::hex: এটি স্ট্রীমকে পরবর্তী মানটিকে হেক্সাডেসিমেল হিসাবে ব্যাখ্যা করতে বলে।
static_cast
std::endl: এটি মুদ্রণের পরে একটি নতুন লাইন অক্ষর সন্নিবেশ করায়।
কনসোলে প্রিন্ট করা এই প্রোগ্রামের আউটপুট নিম্নলিখিত স্নিপেটে দেখানো হয়েছে:
উপসংহার
C++ তে হেক্সাডেসিমেল মান মুদ্রণের জন্য উপলব্ধ সরঞ্জামগুলি বোঝা এবং নির্দিষ্ট প্রয়োজনীয়তার উপর ভিত্তি করে উপযুক্ত পদ্ধতি বেছে নেওয়া জড়িত। আপনি 'std::hex' ম্যানিপুলেটর, 'printf' ফাংশন বা প্যাডিং এবং লিডিং শূন্যের জন্য ফরম্যাটিং টুলের সংমিশ্রণ বেছে নিন না কেন, এই কৌশলগুলির একটি দৃঢ় ধারণা থাকা যেকোনো C++ প্রোগ্রামারের জন্য অপরিহার্য। এই পদ্ধতিগুলিকে ভেবেচিন্তে প্রয়োগ করে, আপনি নিশ্চিত করতে পারেন যে আপনার হেক্সাডেসিমেল মানগুলি সঠিকভাবে এবং একটি দৃশ্যমান আকর্ষণীয় বিন্যাসে প্রদর্শিত হয়েছে যা আপনার C++ কোডের সামগ্রিক পঠনযোগ্যতা এবং স্পষ্টতাতে অবদান রাখে।