از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
هگزادسیمال را به اعشاری در Bash تبدیل کنید
سرفصلهای مطلب
چهار نوع سیستم اعداد در سیستم های کامپیوتری رایج هستند. اینها اعشاری، باینری، اکتال و هگزادسیمال هستند. سیستم باینری 2 پایه است و کلیه محاسبات حسابی توسط کامپیوتر در سیستم باینری انجام می شود. فقط از دو رقم 0 و 1 برای محاسبه استفاده می کند. سیستم اعدادی که برای محاسبه کلی استفاده می کنیم، سیستم اعشاری است که بر اساس 10 است. از اعداد 0 تا 9 در سیستم اعشاری برای محاسبه استفاده می شود. سیستم اعداد اکتالی 8 است و با 0 تا 7 رقم نشان داده می شود. سیستم اعداد هگزادسیمال 16 است و از 0 تا 9 و کاراکترهای A تا F برای نشان دادن عدد استفاده می کند. شما به راحتی می توانید یک عدد را به سیستم اعداد دیگر با استفاده از bash اسکریپت روش تبدیل عدد هگزا دسیمال (هگز) به عدد اعشاری در Bash در این آموزش با استفاده از مثال های مختلف نشان داده شده است.
مثال-1: استفاده از obase، ibase و bc
یکی از راه های ساده برای تبدیل هر سیستم عددی به سیستم عددی دیگر استفاده از ibase، obase و bc است. ایجاد یک bash فایل به نام hexodec1.sh و کد زیر را اضافه کنید با توجه به این مثال، یک عدد هگز به عنوان ورودی گرفته می شود و بر اساس عدد اعشاری تبدیل می شود روی ارزش obase و ibase. در اینجا، obase برای تبدیل عدد اعشاری روی 10، ibase روی 16 تنظیم شده است تا عدد ورودی را به عنوان عدد هگز و `bc` دستور برای تبدیل استفاده می شود.
echo “یک عدد هگز تایپ کنید”
خواندن hexNum
echo -n “مقدار اعشاری از $hexNum=”
echo “obase=10; ibase=16; $hexNum“ | قبل از میلاد مسیح
خروجی:
اسکریپت را با bash دستور دهید و هر عدد هگزادسیمال را به عنوان ورودی برای پیدا کردن مقدار اعشاری بدهید.
مثال-2: با استفاده از ibase، آرگومان خط فرمان و bc
ایجاد یک bash فایل به نام hextodec2.sh و کد زیر را اضافه کنید در این مثال، مقدار ورودی باید در آرگومان خط فرمان داده شود که توسط آن خوانده می شود $@. در اینجا، فقط ibase با مقدار 16 برای تبدیل هگز به عدد اعشاری استفاده می شود.
echo -n “مقدار اعشاری $@=”
echo “ibase=16; $@”|قبل از میلاد مسیح
خروجی:
اسکریپت را با bash دستور، نام فایل و یک عدد هگزادسیمال به عنوان آرگومان خط فرمان. اینجا، FF به عنوان آرگومان خط فرمان داده می شود که به عنوان مقدار هگز در نظر گرفته می شود.
مثال-3: با استفاده از روش printf
گزینه دیگر برای تبدیل هگز به عدد اعشاری است printf. ‘%d’ مشخص کننده فرمت در استفاده می شود printf روش تبدیل هر عدد به عدد اعشاری ایجاد یک bash فایل به نام hextodec3.sh و کد زیر را اضافه کنید طبق این اسکریپت، یک عدد هگز به عنوان ورودی گرفته می شود و در آن استفاده می شود printf روش با %d به print مقدار اعشاری
echo “یک عدد هگز تایپ کنید”
خواندن hexNum
printf “مقدار اعشاری از $hexNum=%d\n“ $((16#$hexNum))
خروجی:
اسکریپت را با bash دستور دهید و هر عدد هگزادسیمال را به عنوان ورودی برای پیدا کردن مقدار اعشاری بدهید.
مثال-4: استفاده از دو براکت
روش دیگری برای تبدیل هگز به عدد اعشاری بدون استفاده از روش ibase، obase و bc یا printf وجود دارد. می توانید از عبارت دو براکتی با پایه 16 برای تبدیل هگز به عدد اعشاری استفاده کنید. ایجاد یک bash فایل به نام hextodec4.sh و کد زیر را اضافه کنید اینجا، echo دستور عدد را به صورت هگز و print خروجی در سیستم اعداد اعشاری
echo “یک عدد هگز تایپ کنید”
خواندن hexNum
echo $(( 16#$hexNum ))
خروجی:
اسکریپت را با bash دستور دهید و هر عدد هگزادسیمال را به عنوان ورودی برای پیدا کردن مقدار اعشاری بدهید.
مثال-5: تبدیل لیست اعداد هگزادسیمال
فرض کنید، یک فایل متنی به نام دارید ‘hexList.txt’ که شامل لیست زیر از اعداد هگز است.
AB05
FF
آ ب پ ت
ACCD
بستر
ایجاد یک bash فایل به نام hextodec5.sh و کد زیر را برای تبدیل هر مقدار هگز اضافه کنید hexList.txt به مقدار اعشاری. در اینجا از obase، ibase و bc برای تبدیل استفاده می شود. در حالی که حلقه برای خواندن هر مقدار هگز از فایل متنی، تبدیل به مقدار اعشاری و print.
در حالی که خواندن عدد
انجام دادن
echo -n “مقدار اعشاری از $شماره(هگز)=”
echo “obase=10; ibase=16; $شماره“ | قبل از میلاد مسیح
انجام شده < hexList.txt
خروجی:
اسکریپت را با bash فرمان پنج مقدار هگز در فایل متنی وجود دارد و خروجی بعد از تبدیل پنج مقدار اعشاری را نشان می دهد.
این آموزش راه های متعددی برای تبدیل هگز به مقادیر اعشاری با استفاده از نشان می دهد bash اسکریپت شما می توانید هر یک از راه ها را برای هدف تبدیل خود دنبال کنید. شما همچنین می توانید سیستم های اعداد دیگر را با استفاده از اسکریپت های ذکر شده در این آموزش تنها با تغییر مقدار پایه تبدیل کنید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1403-01-01 01:22:05