C++ এ হেক্স মান মুদ্রণ করা

C E Heksa Mana Mudrana Kara



C++ প্রোগ্রামিং-এ, হেক্সাডেসিমেল মান মুদ্রণ একটি সাধারণ প্রয়োজন। মেমরি ঠিকানার সাথে কাজ করা হোক না কেন, বিটওয়াইজ অপারেশন পরিচালনা করা হোক বা ডেটার হেক্সাডেসিমাল উপস্থাপনা নিয়ে কাজ করা হোক না কেন, হেক্স মানগুলি কার্যকরভাবে প্রদর্শন করার জন্য বিভিন্ন পদ্ধতি উপলব্ধি করা অপরিহার্য। এই নিবন্ধটি C++-এ হেক্সাডেসিমেল মান প্রিন্ট করার বিভিন্ন পদ্ধতি এবং কৌশলগুলি অন্বেষণ করে, তাদের অ্যাপ্লিকেশন এবং ব্যবহারের ক্ষেত্রে আলোকপাত করে।

Std::hex ব্যবহার করে হেক্স মান প্রিন্ট করা

C++ এ হেক্সাডেসিমেল মান প্রিন্ট করার একটি সহজ উপায় হল হেডার দ্বারা প্রদত্ত “std::hex” ম্যানিপুলেটর ব্যবহার করা। এই ম্যানিপুলেটরটি আউটপুট স্ট্রীমকে নির্দেশ দেয় যাতে প্রিন্ট করার সময় পূর্ণসংখ্যার মানকে হেক্সাডেসিমেল হিসাবে ব্যাখ্যা করা যায়। কল্পনা করুন আপনার কাছে সংখ্যায় পূর্ণ একটি গুপ্তধন আছে। তবে সাধারণ দশমিক পদ্ধতির পরিবর্তে, সেগুলি সমস্ত হেক্সাডেসিমেলের গোপন ভাষায় লেখা হয়। এই কোডগুলির পাঠোদ্ধার করতে এবং তাদের প্রকৃত মানগুলি প্রকাশ করতে, C++ একটি সহায়ক টুল অফার করে যার নাম 'std::hex'। লাইব্রেরির এই ম্যাজিক ট্রিকটি আপনার আউটপুট স্ট্রীমকে একটি ডিকোডার রিং-এ রূপান্তরিত করে, অবিলম্বে সেই রহস্যময় হেক্সাডেসিমেল সংখ্যাগুলিকে তাদের পরিচিত দশমিক প্রতিরূপগুলিতে অনুবাদ করে৷







# অন্তর্ভুক্ত করুন
# অন্তর্ভুক্ত করুন
int প্রধান ( ) {
int decimalValue = 907 ;
std::cout << 'হেক্সাডেসিমেল মান হল:' << std::hex << দশমিক মান << std::endl;
ফিরে 0 ;
}


এই উদাহরণে, 'std::hex' ম্যানিপুলেটরটি 'std::cout' আউটপুট স্ট্রীমে প্রয়োগ করা হয় 'decimalValue' পূর্ণসংখ্যা প্রিন্ট করার আগে। হেক্স মান প্রিন্ট করার পরে, স্ট্রীমটি তার স্বাভাবিক আচরণে ফিরে আসে। এই কোডটি সি++-এ 'std::hex' ম্যানিপুলেটর ব্যবহার করে কীভাবে হেক্সাডেসিমেল মান প্রিন্ট করতে হয় তা পুরোপুরি দেখায়। এখানে কোডের একটি ব্রেকডাউন রয়েছে:



হেডার



: এটি মৌলিক ইনপুট/আউটপুট যেমন কনসোলে প্রিন্ট করার জন্য ব্যবহৃত হয় এবং আউটপুটকে হেক্সাডেসিমেল হিসাবে ফর্ম্যাট করতে '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++ এবং 'std::hex' পদ্ধতির প্রস্তাব দেয়, 'printf' একই ফলাফল অর্জনের জন্য একটি সংক্ষিপ্ত এবং সরাসরি উপায় প্রদান করে।

# অন্তর্ভুক্ত করুন
int প্রধান ( ) {
int decimalValue = 1256 ;
printf ( 'প্রিন্টএফ সহ হেক্সাডেসিমেল মান হল: %x৷ \n ' , দশমিক মান ) ;
ফিরে 0 ;
}


এই উদাহরণে, 'printf' ফাংশনের মধ্যে '%x' ফরম্যাট স্পেসিফায়ার নির্দেশ করে যে সংশ্লিষ্ট আর্গুমেন্টটি হেক্সাডেসিমেলে প্রিন্ট করা উচিত। প্রদত্ত কোডটি C++ এ 'printf' ব্যবহার করে হেক্সাডেসিমেল মান প্রিন্ট করার একটি নিখুঁত উদাহরণ। আসুন এটি ভেঙে দেওয়া যাক:

হেডার

: এই হেডারে “printf” ফাংশন এবং অন্যান্য স্ট্যান্ডার্ড ইনপুট/আউটপুট ফাংশন রয়েছে। হেডারটি C++ এর সাথে আসা লাইব্রেরির স্যুটে অন্তর্ভুক্ত করা হয়েছে। এটি C ভাষার লাইব্রেরি থেকে কার্যকারিতা নিয়ে আসে, C++ কে ক্লাসিক ইনপুট এবং আউটপুট কৌশলগুলি ব্যবহার করার অনুমতি দেয় যা মূলত C-তে অন্তর্ভুক্তির মাধ্যমে পাওয়া যায়।

প্রধান ফাংশন

'int decimalValue = 1256;' “decimalValue” নামের একটি পূর্ণসংখ্যা ভেরিয়েবলে 1256-এর দশমিক মান ঘোষণা করে এবং বরাদ্দ করে। 'printf'-এ 'printf'('printf-এর সাথে হেক্সাডেসিমেল মান হল: %x\n', decimalValue);' স্টেটমেন্ট ফরম্যাট করা আউটপুট প্রিন্ট করার জন্য 'printf' ফাংশনকে কল করে। '%x' হল 'ফরম্যাট স্পেসিফায়ার' যা নির্দেশ করে যে নিম্নলিখিত আর্গুমেন্টটি ছোট হাতের হেক্সাডেসিমেল সংখ্যা হিসাবে প্রিন্ট করা উচিত। অবশেষে, '\n' প্রিন্ট করার পরে একটি নতুন লাইন অক্ষর সন্নিবেশ করায়। এই কোডটি নিম্নোক্ত আউটপুট স্নিপেটে দেখা মত কনসোলে 'প্রিন্টএফ সহ হেক্সাডেসিমেল মান 4e8' আউটপুট করে:

প্যাডিং দিয়ে হেক্স ভ্যালু প্রিন্ট করা

হেক্সাডেসিমেল মান, বিশেষ করে মেমরি অ্যাড্রেস নিয়ে কাজ করার সময়, একটি সামঞ্জস্যপূর্ণ প্রস্থ বা প্যাডিং প্রায়ই কাম্য। এটি হেডার দ্বারা প্রদত্ত “std::setw” ম্যানিপুলেটর ব্যবহার করে অর্জন করা যেতে পারে। এখানে প্যাডিং সহ একটি HEX মান কীভাবে প্রিন্ট করা যায় তার একটি উদাহরণ। এই প্রোগ্রামটি দেখায় কিভাবে হেডার এবং ম্যানিপুলেটর পদ্ধতি ব্যবহার করে প্যাডিং সহ C++ এ হেক্সাডেসিমেল মান প্রিন্ট করা যায়।

# অন্তর্ভুক্ত করুন
# অন্তর্ভুক্ত করুন
int প্রধান ( ) {
int decimalValue = 47 ;
std::cout << 'প্যাডিং সহ হেক্সাডেসিমেল মান হল: ' << std::setw ( 8 ) << std::hex << দশমিক মান << std::endl;
ফিরে 0 ;
}


এই উদাহরণে, std::setw(8) নিশ্চিত করে যে হেক্সাডেসিমেল মানটি ন্যূনতম 8 অক্ষরের প্রস্থের সাথে প্রিন্ট করা হয়েছে। এটি কলামে বা মেমরি ঠিকানাগুলির সাথে মানগুলি সারিবদ্ধ করার জন্য বিশেষভাবে কার্যকর।

আসুন কোডটি ভাঙ্গি এবং প্রতিটি লাইন একে একে বুঝতে পারি:

হেডার

: এটি প্রিন্ট করার জন্য 'std::cout' স্ট্রিমের মত মৌলিক ইনপুট/আউটপুট কার্যকারিতা প্রদান করে।

: এটি “std::setw”-এর মতো ফরম্যাটিং ম্যানিপুলেটর অফার করে যা আউটপুট চেহারা পরিবর্তন করতে ব্যবহার করা হয়।

প্রধান ফাংশন

'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++ এ হেক্সাডেসিমেল মান মুদ্রণ করার জন্য আরও উন্নত পদ্ধতির প্রদর্শন করে। আরও ভাল বোঝার জন্য আসুন এটিকে ভেঙে দিন:

হেডার

: এটি একটি মৌলিক ইনপুট/আউটপুট কার্যকারিতা প্রদান করে যেমন “std::cout” এবং “std::hex” প্রিন্ট করার জন্য।

: এটি ফর্ম্যাটিং ম্যানিপুলেটর অফার করে যেমন “std::setw” এবং “std::setfill” যা আউটপুট চেহারা পরিবর্তন করতে ব্যবহৃত হয়।

প্রধান ফাংশন

প্রধান ফাংশনে, একটি স্বাক্ষরবিহীন 'বাইটডেটা = 0xAB;' char সংজ্ঞায়িত করা হয় যা “byteData” নামে একটি স্বাক্ষরবিহীন চার ভেরিয়েবল ঘোষণা করে এবং এটিতে “0xAB”-এর হেক্সাডেসিমেল মান নির্ধারণ করে। 'std::cout << 'বাইট ডেটার হেক্সাডেসিমেল উপস্থাপনা হল: ':' স্টেটমেন্ট আউটপুট স্ট্রীম ব্যবহার করে কনসোলে বার্তা আউটপুট করে।

“<< std::setw(2) << std::setfill(‘0’) << std::hex << static_cast (byteData) << std::endl;” স্টেটমেন্ট চেইন আউটপুট ফরম্যাট করতে একাধিক ম্যানিপুলেটর প্রয়োগ করে।

std::setw(2): এটি ন্যূনতম আউটপুট প্রস্থ 2 অক্ষরে সেট করে।

std::setfill('0'): এটি নির্দিষ্ট করে যে ন্যূনতম প্রস্থে পৌঁছানোর জন্য প্রয়োজনীয় যে কোনও প্যাডিং '0' অক্ষর দিয়ে পূরণ করা উচিত।

std::hex: এটি স্ট্রীমকে পরবর্তী মানটিকে হেক্সাডেসিমেল হিসাবে ব্যাখ্যা করতে বলে।

static_cast (byteData): এটি হেক্সাডেসিমেলে রূপান্তর করার আগে স্বাক্ষরবিহীন চার ডেটাকে একটি 'int'-এ কাস্ট করে। এটি প্রযুক্তিগতভাবে প্রয়োজনীয় নয় তবে কিছু বিন্যাস বিকল্পগুলির সাথে সামঞ্জস্যের জন্য ব্যবহার করা যেতে পারে।

std::endl: এটি মুদ্রণের পরে একটি নতুন লাইন অক্ষর সন্নিবেশ করায়।

কনসোলে প্রিন্ট করা এই প্রোগ্রামের আউটপুট নিম্নলিখিত স্নিপেটে দেখানো হয়েছে:

উপসংহার

C++ তে হেক্সাডেসিমেল মান মুদ্রণের জন্য উপলব্ধ সরঞ্জামগুলি বোঝা এবং নির্দিষ্ট প্রয়োজনীয়তার উপর ভিত্তি করে উপযুক্ত পদ্ধতি বেছে নেওয়া জড়িত। আপনি 'std::hex' ম্যানিপুলেটর, 'printf' ফাংশন বা প্যাডিং এবং লিডিং শূন্যের জন্য ফরম্যাটিং টুলের সংমিশ্রণ বেছে নিন না কেন, এই কৌশলগুলির একটি দৃঢ় ধারণা থাকা যেকোনো C++ প্রোগ্রামারের জন্য অপরিহার্য। এই পদ্ধতিগুলিকে ভেবেচিন্তে প্রয়োগ করে, আপনি নিশ্চিত করতে পারেন যে আপনার হেক্সাডেসিমেল মানগুলি সঠিকভাবে এবং একটি দৃশ্যমান আকর্ষণীয় বিন্যাসে প্রদর্শিত হয়েছে যা আপনার C++ কোডের সামগ্রিক পঠনযোগ্যতা এবং স্পষ্টতাতে অবদান রাখে।