ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 8 از 8
  1. #1
    2008/12/11
    400
    12

    تبدیل عدد اعشاری به باینری ؟؟؟

    سلام دوستان .. منی می خوام یه عدد اعشاری رو تبدیل کنم به باینری بعد تعدادی از رقم های باینری شده رو استخراج کنم .

    مثلا عددم 0.526849500125 هست .( من یه تابع دارم دقت خروجی اون زیاده ... ) . حالا فرض کنیم که باینری این عدد می شه

    0.01101010001010110011001010110100

    (البته همین تبدیل رو هم نمی دونم باید چه طور انجام بدم ) ...

    بعدشم می خوام تعدادی از این رقم های اعشاری رو استخراج کنم مثلا از اولی تا هشتمی که برای مثال بالا می شه 01101010

    کسی می دونه باید چیکار کنم ؟؟؟؟؟؟؟؟؟؟

    راستی یه سوال دیگه توی متلب چه طور دقت و میزان ارقام اعشاری رو مشخص می کنند ؟؟؟؟
    حداکثر دقتی که متلب داره چقدره ؟؟؟؟

    دوستان زیاد شد می دونم اما هر کدوم رو هم که جوابش رو می دونید ممنون می شم در اختیار من هم قرار بدید
  2. #2
    2007/10/14
    تهران
    1,335
    38

    پاسخ : تبدیل عدد اعشاری به باینری ؟؟؟

    سلام. برای تبدیل از double به باینری و برعکس میتونید از این برنامه آماده استفاده کنید:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  3. #3
    2009/10/21
    تهران
    2,517
    217

    پاسخ : تبدیل عدد اعشاری به باینری ؟؟؟

    نحوه ذخیره اعداد اعشاری در کامپیوتر از استاندارهای خاصی پیروی میکنه و ارقام باینری اون به تنهایی مشخص کننده دقت نیست (استاندارد IEEE754)
    شما اگه به همه قسمت اعشاری نیاز نداری تا اونجاییکه لازم داری رو بیار تو قسمت صحیح و بقیه رو حذف کن. اگه سوال و هدف از انجام کار واضح تر بود بیشتر میشد کمک کرد
  4. #4
    2008/12/11
    400
    12

    پاسخ : تبدیل عدد اعشاری به باینری ؟؟؟

    نقل قول نوشته اصلی توسط mojalan
    نحوه ذخیره اعداد اعشاری در کامپیوتر از استاندارهای خاصی پیروی میکنه و ارقام باینری اون به تنهایی مشخص کننده دقت نیست (استاندارد IEEE754)
    شما اگه به همه قسمت اعشاری نیاز نداری تا اونجاییکه لازم داری رو بیار تو قسمت صحیح و بقیه رو حذف کن. اگه سوال و هدف از انجام کار واضح تر بود بیشتر میشد کمک کرد
    من دارم یه الگوریتم برای رمزنگاری می نویسم که هم باید به زبان C بنویسم و هم با متلب ....( فعلا روی متلب تمرکز کردم )

    من می خوام از حداکثر دقت کامپیوتر که 32 بیتی استفاده کنم .( فکر می کنم عدد ها باید از نوع double باشه دقیقا نمی دونم تا چند رقم اعشار رو ساپورت می کنه ).

    تمامی خروجی الگوریتمم هم بین 0 تا 1 هستش . مثل همین 0.526849500125

    دوباره با فرض اینکه باینری عدد بالا بشه 0.101001110101011011010 امکان داره که من بخوام از رقم 10 تا 18 بخوام جدا کنم حتما نخوام از رقم اولی شروع کنم برای استخراج ...

    یه چیزی مثلا عدد من 0.5 هستش . شما میگید من بیام عدد در 10 ضرب کنم که بشه 5 ...اما من نمی خوام این کار رو بکنم چون که باینری 0.5 میشه 0.1 و باینری 5 میشه 101

    دوستان اکر نظر دیگه ای دارند ممنون میشم در اختیارم قرار بدند

    اصلا یه چیز دیگه همون طور که شما گفتید اعداد توی کامپیوتر طبق استاندارد ieee754 ذخیره می شند . من با استفاده از تابع num2hex عددم رو طبق همین استاندارد به هگز یا به عبارت دیگه به باینری تبدیل می کنم .. خروجی این تابع یک رشته هستش مثلا
    کد:
    num2hex(0.000021458)
    
    ans =
    
    3ef6801688241db9

    طبق این استاندارد عدد اینطوری ذخیره می شه
    همون طور که معلومه 12 بیت بالا مربوط به sign و exponent هستش . من توی متلب چه طوری می تونم از اون 52 بیت مربوط به fraction مثلا 8 بیت اول رو بدست بیارم مثلا توی همین 3ef6801688241db9 عددای 3ef رو کنار بزارمو 68 رو (البته هگز) بدست بیارم .. همون طور که گفتم یه متغیر رشته ای هستش
  5. #5
    2010/05/09
    930
    39

    پاسخ : تبديل عدد اعشاري به باينري ؟؟؟

    با سلام

    1- دابل double عددي 64 بيتي است و 15 رقم اعشار دقت دارد.
    2- لانگ دابل long ouble عددي 80 بيتي است و 19 رقم اعشار دقت دارد.
    3- چون بين 0و 1 قرار داريد : عدد مورد نظر را در 2 به توان 32 ضرب کنيد. ( ارقام باينري شما ثابت مي مانند مثل شيفت به چپ )
    4- يک عدد unsigned long int صحيح را برابر با آن عدد ضرب شده قرار دهيد.

    5- حالا 32 بيت درست و درمان داريد.

    double dres=0.546654345;
    dres *= (double)0x100000000 ;
    unsigned long int ires = dres;

    ires عدد 32 بيتي مورد نظر شماست که هر بخش از آن را مي توانيد جداکرده و استفاده کنيد.

    با سپاس
    گشتی در لاله زار
    http://www.eca.ir/forum2/index.php?topic=76138.0

    http://www.eca.ir/forum2/index.php?topic=76141
  6. #6
    2008/12/11
    400
    12

    پاسخ : تبديل عدد اعشاري به باينري ؟؟؟

    نقل قول نوشته اصلی توسط Solsal
    با سلام

    1- دابل double عددي 64 بيتي است و 15 رقم اعشار دقت دارد.
    2- لانگ دابل long ouble عددي 80 بيتي است و 19 رقم اعشار دقت دارد.
    3- چون بين 0و 1 قرار داريد : عدد مورد نظر را در 2 به توان 32 ضرب کنيد. ( ارقام باينري شما ثابت مي مانند مثل شيفت به چپ )
    4- يک عدد unsigned long int صحيح را برابر با آن عدد ضرب شده قرار دهيد.

    5- حالا 32 بيت درست و درمان داريد.

    double dres=0.546654345;
    dres *= (double)0x100000000 ;
    unsigned long int ires = dres;

    ires عدد 32 بيتي مورد نظر شماست که هر بخش از آن را مي توانيد جداکرده و استفاده کنيد.

    با سپاس
    ممنون مهندس ...
    فقط یه چیزی آیا متغیر double توی میکرو کنترلر arm هم مانند کامپیوتره یعنی از همون استاندارد استفاده می کنه ؟؟؟؟
  7. #7
    2010/05/09
    930
    39

    پاسخ : تبديل عدد اعشاري به باينري ؟؟؟

    نقل قول نوشته اصلی توسط ma-bah
    ممنون مهندس ...
    فقط يه چيزي آيا متغير double توي ميکرو کنترلر arm هم مانند کامپيوتره يعني از همون استاندارد استفاده مي کنه ؟؟؟؟
    با سلام

    keil

    Basic data types
    ARM Compiler toolchain v4.1 for µVision Compiler Reference

    Home > C and C++ Implementation Details > C and C++ implementation details > Basic data types

    Basic data types
    This section describes how the basic data types are implemented in ARM C and C++.

    Size and alignment of basic data types
    Table 31 gives the size and natural alignment of the basic data types.

    Table 31. Size and alignment of data types

    Type Size in bits Natural alignment in bytes
    char 8 1 (byte-aligned)
    short 16 2 (halfword-aligned)
    int 32 4 (word-aligned)
    long 32 4 (word-aligned)
    long long 64 8 (doubleword-aligned)
    float 32 4 (word-aligned)
    double 64 8 (doubleword-aligned)
    long double 64 8 (doubleword-aligned)

    All pointers 32 4 (word-aligned)
    bool (C++ only) 8 1 (byte-aligned)
    _Bool (C only[a]) 8 1 (byte-aligned)
    wchar_t (C++ only) 16 2 (halfword-aligned)
    [a] stdbool.h can be used to define the bool macro in C.


    گشتی در لاله زار
    http://www.eca.ir/forum2/index.php?topic=76138.0

    http://www.eca.ir/forum2/index.php?topic=76141
  8. #8
    2018/01/31
    1
    0

    پاسخ : تبدیل عدد اعشاری به باینری ؟؟؟

    سلام
    برنامه ای که یک عدد اعشاری مثلا 4.5 را به فرمت 32بیتی ذخیره در
    کامپیوتر و بر عکس
    اول برنامه دو گزینه باشه که انتخاب کنی عدد به چه فرمیه
نمایش نتایج: از 1 به 8 از 8

موضوعات مشابه

  1. تبدیل باینری به مبنای 10
    توسط سید سجاد احدزاده در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2015/03/23, 21:44
  2. تبدیل باینری به پالس در یک پین
    توسط ben-robot در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2014/11/26, 15:10
  3. تبدیل تصویر به باینری
    توسط jenabzade در انجمن پردازش تصوير
    پاسخ: 1
    آخرين نوشته: 2014/07/12, 21:51
  4. تبدیل باینری به اسکی
    توسط yadegari در انجمن میکروکنترلرهای PIC
    پاسخ: 2
    آخرين نوشته: 2013/05/24, 11:06
  5. تبدیل کد گری به کد باینری
    توسط mohamad12490 در انجمن مدار هاي ديجيتال
    پاسخ: 4
    آخرين نوشته: 2011/05/07, 21:08

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •