java, جاوا, حل مسائل با جاوا, ساختمان داده در جاوا

تبدیل اعداد دهدهی به هگزادسیمال در جاوا

تبدیل اعداد دهدهی به هگزادسیمال در جاوا

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

  1. آشنایی با حلقه while
  2. آشنایی با if
  3. آشنایی با متد

هگزادسیمال چیست؟

هگزادسیمال (Hexadecimal) که به اختصار هگز (Hex) نیز نامیده می‌شود، یک سامانه عدد نویسی است که بر مبنای ۱۶ بوده و برای نمایش دادن آن از ۱۶ سمبل استفاده می‌شود. اعداد ۰ تا ۹ به صورت عادی (یعنی همان اعداد ۰ تا ۹) و اعداد ۱۰ تا ۱۵ را با حروف A(ده) و B(یازده) و C(دوازده) و D(سیزده) و E(چهارده) و F(پانزده) نشان می‌دهند.

برخی از کاربران در ابتدا در ۱۶هی بودن این سیستم شک می‌کنند، چون ما از عدد ۰ استفاده می‌کنیم تا ۱۵، درواقع ما ۱۶ عدد برای انتخاب کردن خواهیم داشت مثل ۱۰هی بودن اعداد عادی که از ۰ شروع می‌شوند تا ۹.

اکثر اعدادی که روزانه از آن‌ها استفاده می‌کنیم، بر پایه ۱۰ هستند یعنی ۱۰ کاراکتر برای نشان دادنشان کافی است، از اعداد ۰ تا ۹ اسم این سیستم دسیمال است. ولی همانطور که گفته شد، در سیستم عددنویسی هگز، ما از ۱۶ کاراکتر استفاده می‌کنیم.

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

سیستم هگزادسیمال در رشته‌های کامپیوتر و ریاضی کاربردهای فراوانی دارد. از برنامه نویسی سطح پایین گرفته تا کد رنگ صفحات HTML تا دیباگ کردن برنامه‌ها. اما نحوه نمایش هگز در سیستم‌های مختلف متفاوت است.

مثلاً در سیستم‌های یونیکس و شبه یونیکس (و بسیاری از سیستم‌های دیگر) دو کاراکتر ۰x  در اول مقدار هگز نشان داده می‌شود (مثلاً ۰xAA یا ۰x2F4) در برخی از سیستم‌ها و صفحات HTML کدهای رنگ بصورت ترکیبی از کاراکترهای هگز نشان داده می‌شود که در اول آن‌ها # قرار می‌گیرد (مثلاً #FFFFFF – #  قبل از FFFFFF است). در زبان اسمبلی پردازنده‌های اینتل، پس از مقادیر هگز یا h یا H قرار داده می‌شود (مثلاً 2h یا  A6H) و …( bytegate.ir)

تبدیل اعداد دهدهی به هگزادسیمال

مراحل تبدیل تبدیل اعداد دهدهی به هگزادسیمال به صورت زیر است:

  1. عدد دهدهی را بر 16 تقسیم میکنیم.
  2. باقیمانده را نگه میداریم.
  3. حال نتیجه تقسیم را دوباره به 16 تقسیم میکنیم.(از قسمت اعشاری چشم پوشی میکنیم)
  4. مراحل 2 و 3 را تا آنجایی تکرار کنید که نتیجه تقسیم صفر شود.

عدد 1128 را در نظر میگیریم. این عدد را تقسیم بر 16 میکنیم. بایقیمانده این تقسیم میشود 8 و حاصل تقسیم میشود 70(از قسمت اعشاری چشم پوشی میکنیم).عدد 80 را تقسیم بر 16 میکنیم و باقیمانده این تقسیم میشود 6 و حاصل میشود 4. حال 4 را تقسیم بر 16 میکنیم. باقیمانده میشود 4 و حاصل میشود صفر. در این جا دیگر نیازی به تقسیم نداریم. حال باید باقیمانده ها را از آخر به اول کنار هم بگذاریم. حاصل این تبدیل میشود 468. نوبت به تبدیل اعداد دهدهی به هگزادسیمال در جاوا رسیده است.

تبدیل اعداد دهدهی به هگزادسیمال در جاوا

برای تبدیل اعداد دهدهی به هگزادسیمال در جاوا ما یک متد به نام decimal2hex مینویسیم که یک عدد int ورودی میگیرد و خروجی یک String برمیگرداند. کد تبدیل اعداد دهدهی به هگزادسیمال در جاوا به صورت زیر است:

public static String decimal2hex(int d) {
String digits = "0123456789ABCDEF";
if (d == 0) return "0";
String hex = "";
while (d > 0) {
int digit = d % 16;
hex = digits.charAt(digit) + hex;
d = d / 16;
}
return hex;
}

همانطور که در کد تبدیل اعداد دهدهی به هگزادسیمال در جاوا میبینید ما یک رشته به نام digits در نظر گرفتیم. کار این متغیر این است که باقیمانده تقسیم هرچه بود را به صورت کاراکتر به ما بدهد(مثل 1یا 2 یا Aیا D). یک while هم نوشته شده برای انجام مراحل تقسیم و وقتی حاصل تقسیم صفر شد خروجی را به ما میدهد. متغیر hex همان خروجی ما است.

تست تبدیل اعداد دهدهی به هگزادسیمال در جاوا

برای تست کدهای بالا، کد main زیر را بزنید:

public static void main(String[] args) {
System.out.println(decimal2hex(4843));

}

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *