نمایش نتایج 1 تا 15 از 15

نام تاپیک: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

  1. #1

    Question راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    سلام
    دوستان من باید تعدادی رشته ی بیتی تصادفی که دارای فرمت اعشاری هست رو تولید کنم.چیزی شبیه: 110.0101
    رشته ای مثل 100110 رو براحتی با تابع رندوم و نوع داده ی اینتیجر تولید کردم ولی رشته با فرمت اعشاریو نمیدونم چطور باید ایجاد کنم
    ممنون میشم راهنمایی بفرمایید

  2. #2

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    سلام
    شما همون رشته ای که قبلا تولید کردید به طور تصادفی در قسمتی از رشته کاراکتر '.' را قرار بدید

  3. #3
    کاربر دائمی آواتار ehsan_faal
    تاریخ عضویت
    خرداد 1392
    محل زندگی
    تهران
    پست
    325

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    #include <iostream>
    #include <stdlib.h>
    #include <time.h>
    #include <cstring>
    using namespace std;
    char *GenerateRandomString(char *);
    int main()
    {
    int Length=6;
    char BinaryString[Length+1];
    for(int i=0;i<Length;i++)
    BinaryString[i]='n';
    BinaryString[Length]=0;
    cout<<GenerateRandomString(BinaryString)<<endl;
    return 0;
    }
    char* GenerateRandomString(char *input)
    {
    int Length=strlen(input);
    srand(time(0));
    int PointPlace=1+rand()%(Length-2);
    char *inputHolder=input;
    while(*input!=0)
    {
    if(input==(inputHolder+PointPlace))
    {
    *input='.';
    }else{
    *input=((rand()%2)?'1':'0');
    }
    input++;
    }
    return inputHolder;
    }

    آخرین ویرایش به وسیله ehsan_faal : یک شنبه 24 خرداد 1394 در 21:45 عصر

  4. #4
    کاربر دائمی آواتار amirtork
    تاریخ عضویت
    خرداد 1393
    محل زندگی
    Iran(Islamic Republic Of) / Tehran
    پست
    198

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    نقل قول نوشته شده توسط ehsan_faal مشاهده تاپیک
    #include<iostream> #include<stdlib.h> #include<time.h> #include<cstring> usingnamespacestd; char*GenerateRandomString(char*); intmain() { intLength=30; charBinaryString[Length+1]; for(inti=0;i<Length;i++) BinaryString[i]='n'; BinaryString[Length]=0; cout<<GenerateRandomString(BinaryString)<<endl; } char*GenerateRandomString(char*input) { intLength=strlen(input); srand(time(0)); intPointPlace=1+rand()%(Length-1); char*inputHolder=input; while(*input) { if(input==(inputHolder+PointPlace)) { *input='.'; input++; }else{ *input=((rand()%2)?'1':'0'); input++; } } returninputHolder; } 
    کد ناخوانا هست.
    اگر امکانش هست تصحیح کنید.
    (end-line ها نمایش داده نمیشه.)

  5. #5

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    نقل قول نوشته شده توسط ehsan_faal مشاهده تاپیک
    #include <iostream>
    #include <stdlib.h>
    #include <time.h>
    #include <cstring>
    using namespace std;
    char *GenerateRandomString(char *);
    int main()
    {
    int Length=6;
    char BinaryString[Length+1];
    for(int i=0;i<Length;i++)
    BinaryString[i]='n';
    BinaryString[Length]=0;
    cout<<GenerateRandomString(BinaryString)<<endl;
    return 0;
    }
    char* GenerateRandomString(char *input)
    {
    int Length=strlen(input);
    srand(time(0));
    int PointPlace=1+rand()%(Length-2);
    char *inputHolder=input;
    while(*input!=0)
    {
    if(input==(inputHolder+PointPlace))
    {
    *input='.';
    }else{
    *input=((rand()%2)?'1':'0');
    }
    input++;
    }
    return inputHolder;
    }

    دوست عزیز لطف میکنین یه توضیحی در مورد کد بدین؟

  6. #6
    کاربر دائمی آواتار ehsan_faal
    تاریخ عضویت
    خرداد 1392
    محل زندگی
    تهران
    پست
    325

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    شما اول مشخص میکنید که رشته نهاییتون قراره چه طولی داشته باشه(طول اعداد + نقطه) بعدیک آرایه از کاراکترها رو به اندازه طولی که خودتون مشخص کردید ایجاد میکنید و بهش یه مقدار اولیه ای میدید تا یه وقت کاراکتر پوچ غیر از آخرین خونه جای دیگه ای ظاهر نشده باشه.
    بعد آخرین خونه رو برابر کاراکتر پوچ قرار میدید و الان تابع رو صدا میزنید.
    توی این تابع اول طول رشته رو لازم دارید که با strlen به دستش آوردیم(تعداد کاراکترهای قبل از کاراکتر پوچ رو میده و واسه همین روی مقدار دهی اولیه رشته تاکید کردیم)
    بعد واسه اینکه اعداد رندومی که قصد تولیدش رو دارید از srand استفاده میکنید و زمان جاری سیستم رو به عنوان پارامتر ورودی بهش میدید.
    محل قرار گیری نقطه رو با استفاده از rand توی رنج خونه با اندیس یک تا خونه یکی مونده به آخر تعیین میکنید.
    آدرس شروع رشته رو توی inputHolder نگه میدارید(بعدا لازم میشه)
    حالا یه دور توی رشته میچرخید و اگه اشاره گر ی که هی داره زیاد میشه تا کل رشته رو پیمایش کنه برابر با مقدار اولش + محل قرار گیری نقطه شده بود پس اونجا یه نقطه قرار میدید اگه نشده بود باز با استفاده از rand یا '0' یا '1' قرار میدید. در آخر هم اشاره گری که گفته بودم بعدا لازم میشه رو برمیگردونید.

  7. #7

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    دوست عزیز rahnema1 این کارو انجام دادم یه رشته ی 5 بیتی تعریف کردم و بیت سوم اونرو "." گذاشتم به این شکل "10.11" بعد اومدم قسمت اعشار و قسمت صحیحشو بصورت جداگانه به مبنای ده بردم حالا موندم این دو قسمت رو چجوری تو یه متغیر اعشاری بگنجونم.
    در حال حاضر یه متغیر اینتیجر (قسمت صحیح) دارم با مقدار 2 و یه متغیر اینتیجر(قسمت اعشاری) با مقدار 0.75 نمیدونم چجوری به شکل 2.75 در قالب یه عدد اعشاری ذخیرش کنم.
    ممنون میشم راهنمایی بفرمایید.

  8. #8

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    نقل قول نوشته شده توسط adineh67 مشاهده تاپیک
    دوست عزیز rahnema1 این کارو انجام دادم یه رشته ی 5 بیتی تعریف کردم و بیت سوم اونرو "." گذاشتم به این شکل "10.11" بعد اومدم قسمت اعشار و قسمت صحیحشو بصورت جداگانه به مبنای ده بردم حالا موندم این دو قسمت رو چجوری تو یه متغیر اعشاری بگنجونم.
    در حال حاضر یه متغیر اینتیجر (قسمت صحیح) دارم با مقدار 2 و یه متغیر اینتیجر(قسمت اعشاری) با مقدار 0.75 نمیدونم چجوری به شکل 2.75 در قالب یه عدد اعشاری ذخیرش کنم.
    ممنون میشم راهنمایی بفرمایید.
    سلام
    معمولا اعدادت با چند رقم اعشار هست ؟!
    باsetprecision دقت اعدادت رو مشخص کن
    بعدش میتونی با هم جمعشون کنی دیگه
    مثلا عدد 2 با 0.75 که گفتی با دقت 2 رقم اعشار، به این صورت با هم جمع میشن
    2.75 = 0.75 + 2.00
    [چیز ساده ای بود !شاید هم من دقیق سوالت رو متوجه نشده باشم !! ]

  9. #9

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    خب الان می خواهید این دو تا را با هم جمع کنید؟ یا به صورت رشته چاپ کنید؟

    #include <stdio.h>
    int main()
    {
    float a = 2.75;
    printf("%.2f", a);
    }

    یا

    #include <stdio.h>
    int main()
    {
    float a = 2.75;
    char str[20] = {};
    sprintf(str, "%.2f", a);
    printf("%s", str);
    }

  10. #10

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    ممنون از همگی
    فقط یه سوال میپرسم به عنوان سوال آخر
    رشته ای مثل 101.01 رو چطوری باید چاپ کنم؟
    من به این شکل چاپش کردم اما به جای نمایش کراکتر"." کداسکی اونرو که 46 هست نمایش میده:

    printf("\n popcurrent[%d]=%d%d%d%d%d%d", popcurrent[j].bit[5],popcurrent[j].bit[4],popcurrent[j].bit[3],popcurrent[j].bit[2],popcurrent[j].bit[1],popcurrent[j].bit[0])


  11. #11

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    popcurrent چیه و اعداد به چه صورت داخلش ذخیره شدند و متغیر bit هم بگید چیه
    اگه bit از نوع int هست شاید بهتر بود به جای 0 و 1 کد اسکی اونها یعنی '0' و '1' ذخیره می شد و به جای d% از c% استفاده می کردید

    char str[] = "101.01";
    puts(str);
    printf("%s\n", str);
    printf(str);
    آخرین ویرایش به وسیله rahnema1 : سه شنبه 26 خرداد 1394 در 08:47 صبح

  12. #12

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی


    typedef struct str
    {
    char bit[6];
    float fit;
    }str;
    str popcurrent[4];

    یه استراکچر تعریف کردم که یه رشته ی شش بیتی و معادل اعشاری اون رشته رو برام نگه داره،popcurrent یک نمونه از استراکچر هست که 4 رشته ی 6بیتی و معادل اعشاریشونو نگهداری میکنه
    حالا با این دستور میخوام یه رشته رو چاپ کنم که مشکلی که گفتم خدمتتون پیش میاد.


    printf("\n popcurrent[%d]=%d%d%d%d%d%d", popcurrent[j].bit[5],popcurrent[j].bit[4],popcurrent[j].bit[3],popcurrent[j].bit[2],popcurrent[j].bit[1],popcurrent[j].bit[0])


  13. #13

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    همون طور که اشاره کردم بهتره 0 و 1 را هم به صورت '0' و '1' داخل آرایه bit بذارید


    popcurrent[0].bit[0] = '1';
    popcurrent[0].bit[1] = '0';
    popcurrent[0].bit[2] = '1';
    popcurrent[0].bit[3] = '0';
    popcurrent[0].bit[4] = '.';
    popcurrent[0].bit[5] = '1';
    printf("%.6s\n", popcurrent[j].bit);

    یعنی معادل اسکی اونها را بذارید
    مثلا یک و صفر را بخواهیم به معادل اسکی تبدیل کنیم به این صورت:

    popcurrent[j].bit[0] = 0 + '0';
    popcurrent[j].bit[0] = 1 + '0';

  14. #14

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    دوست عزیز این صفر و یکها با متغیر اینتیجر و بصورت تصادفی دارن ایجاد میشن چجوری به شکل '0' یا '1' داخل bitقرارشون بدم؟

  15. #15

    نقل قول: راهنمایی در مورد نمایش اعداد اعشاری بصورت رشته ی بیتی

    تو پست قبلی اشاره کردم مثلا رندم هم باشه به صورت زیر

    popcurrent[j].bit[0] = rand() % 2 + '0';
    popcurrent[j].bit[0] = rand() % 2 + '0';

تاپیک های مشابه

  1. نمایش اعداد اعشاری حداکثر تا دورقم
    نوشته شده توسط VB.NET2005 در بخش VB.NET
    پاسخ: 12
    آخرین پست: پنج شنبه 11 بهمن 1386, 17:48 عصر
  2. نمایش اعداد اعشاری در حالت Auto
    نوشته شده توسط mahdighasemi در بخش VB.NET
    پاسخ: 10
    آخرین پست: دوشنبه 24 دی 1386, 20:37 عصر
  3. نمایش اعداد اعشاری در حالت Auto
    نوشته شده توسط mahdighasemi در بخش گزارش سازی با Crystal Report
    پاسخ: 3
    آخرین پست: چهارشنبه 25 مهر 1386, 07:45 صبح
  4. نمایش اعداد اعشاری با اسلش
    نوشته شده توسط انگوران در بخش Access
    پاسخ: 1
    آخرین پست: دوشنبه 19 شهریور 1386, 12:29 عصر

قوانین ایجاد تاپیک در تالار

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