اسکریپت تبدیل واحد های ده دهی به دو دویی

  • شروع کننده موضوع ruin3r
  • تاریخ شروع

ruin3r

مدیر کل انجمن
عضو کادر مدیریت
مدیر کل انجمن
عضویت
10/5/15
ارسال ها
146
امتیاز
6
با سلام.
با استفاده از اسکریپت زیر شما می توانید واحد های ده دهی رو به واحدهای دو دویی تبدیل کنید.
این اسکریپت تنها جنبه آموزشی دارد و جهت آشنایی شما می باشد.

کد:
#!/bin/bash

for ((i=32;i>=0;i--)); do
        r=$(( 2**$i))
        Probablity+=( $r  )
done

[[ $# -eq 0 ]] &echo -en "Decimal\t\tBinary\n"
for input_int in $@; do
s=0
test ${#input_int} -gt 11 &printf "%-10s\t" "$input_int"

        for n in ${Probablity[@]}; do

                if [[ $input_int -lt ${n} ]]; then
                        [[ $s = 1 ]] && printf "%d" 0
                else
                        printf "%d" 1 ; s=1
                        input_int=$(( $input_int - ${n} ))
                fi
        done
echo -e
done
با استفاده از دستور زیر کد رو اجرا و سپس به مثال آن توجه کنید:

کد:
[root@iwa ~]# chmod 755 Decimal2Binary.sh
[root@iwa ~]# ./Decimal2Binary.sh 1121

Decimal        Binary
1121          10001100001
در نظر داشته باشید که شما اگر درک کاملی از محاسبه ده دهی به دودویی نداشته باشید در نگاه اول و بررسی کردن این اسکریپت به طور کامل متوجه آن نخواهید شد.

موفق باشید.
شاهین سالک توتونچی
 
آخرین ویرایش:
بالا