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





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









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









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





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

نمایش نتایج: از 1 به 7 از 7
  1. #1
    2007/11/08
    22
    0

    تبديل عدد چند رقمي به کاراکتر متناظر بدون استفاده از توابع داخلي

    سلام.من ميخوام يه تابع براي تبديل عدد چند رقمي به کاراکتر بنويسم.مثلا به ازاي عدد 875 مقدار کاراکتري اون رو بر گردونه.ميشه روش تبديل رو توضيح بدين.
  2. #2
    2012/05/30
    کرمان
    793
    19

    پاسخ : تبديل عدد چند رقمي به کاراکتر متناظر بدون استفاده از توابع داخلي

    نقل قول نوشته اصلی توسط amir6682
    سلام.من ميخوام يه تابع براي تبديل عدد چند رقمي به کاراکتر بنويسم.مثلا به ازاي عدد 875 مقدار کاراکتري اون رو بر گردونه.ميشه روش تبديل رو توضيح بدين.
    سلام
    اگه با زبان c کار میکنید از این تابع استفاده کنید.
    این رو برای lcd کاراکتری نوشتم که w عدد ورودی و آرایه مورد نظر هم t.
    اگه متوجه نحوه کار تابع نشدید بگید تا تشریحش کنیم.
    کد:
    void lcd_put(int w){
    unsigned char t[17],b;
    int a,c;
    a=w;b=0;
    while(a>9){a=a/10;b++;}
    c=1;
    for(a=0;a<b;a++){c=c*10;}
    for(a=0;a<18;a++){t[a]='\0';}
    a=0;
    while(c!=0){
    t[a]=(w/c)+0x30;
    w=w%c;
    c=c/10;
    a++;}
    lcd_puts(t);}
    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا
  3. #3
    2007/04/28
    586
    2

    پاسخ : تبديل عدد چند رقمي به کاراکتر متناظر بدون استفاده از توابع داخلي

    نقل قول نوشته اصلی توسط amir6682
    سلام.من ميخوام يه تابع براي تبديل عدد چند رقمي به کاراکتر بنويسم.مثلا به ازاي عدد 875 مقدار کاراکتري اون رو بر گردونه.ميشه روش تبديل رو توضيح بدين.
    روش کار ساده هست.
    1- شما بايد در هر مرحله با تقسيم عدد مورد نظر بر 10 باقي مانده اون محاسبه کنيد
    2- به باقي مانده عدد 48 اضافه کني تا تبديل به کد اسکي بشه
    3- اگه خارج قسمت از 10 کوچکتر بود تمام
    در غير اين صورت خارج قسمت به عنوان ورودي جديد در نظر ميگيري و به مرحله 1 بر ميگردي

    نکته: در مرحله 2 ميتوني کارکترها در يک آرايه ذخيره کني تا يک رشته در بياد
    نکته: بسياري از کامپايلر ها کتابخانه اي براي تبديل عدد به رشته و برعکس دارند
    [size=1.45em][glow=red,2,300]تاپيک هاي ايجاد شده[/glow][/size]
    • [li]

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

      عضویت

      [/li]
  4. #4
    2007/11/08
    22
    0

    پاسخ : تبديل عدد چند رقمي به کاراکتر متناظر ب

    مرسي دوست عزيز.مشکل من اين بود که در mikroc دستور bytetostr متغير مورد نظر رو به رشته تبديل ميکنه اما نمي تونه چينش صحيحي از آرايه ها رو داشته باشه.به همین خاطر خواستم خودم تابعی تعریف کنم.

    my problem is :
    ////////16F887////////
    char Achar[4],Bchar[4];
    int num=0,cmp=0;

    sbit LCD_RS at RC0_bit;
    sbit LCD_EN at RC1_bit;
    sbit LCD_D4 at RC2_bit;
    sbit LCD_D5 at RC3_bit;
    sbit LCD_D6 at RC4_bit;
    sbit LCD_D7 at RC5_bit;
    sbit LCD_RS_Direction at TRISC0_bit;
    sbit LCD_EN_Direction at TRISC1_bit;
    sbit LCD_D4_Direction at TRISC2_bit;
    sbit LCD_D5_Direction at TRISC3_bit;
    sbit LCD_D6_Direction at TRISC4_bit;
    sbit LCD_D7_Direction at TRISC5_bit;

    void main ()
    {
    Lcd_Init();
    Lcd_Cmd(_LCD_CLEAR);
    Lcd_Cmd(_LCD_CURSOR_OFF);


    Achar[0]='7';
    Achar[1]='5';
    Lcd_out(1,1,Achar);
    num=75;
    bytetostr(num,Bchar);
    Lcd_chr(2,1,Bchar[0]); //bchar[0]=empty It doesn't start form here and start from bchar[1] for fill array??
    Lcd_chr(2,2,Bchar[1]); //bchar[1]=7
    Lcd_chr(2,3,Bchar[2]); //bchar[2]=5
    Lcd_chr(2,4,Bchar[3]); //bchar[3]=empty
    cmp=strcmp(Bchar,Achar);
    if(cmp=0) //never been zero because in terms of strcmp they have difference
    RB0_bit=1;

    }

    for example when num= 75 , i want to convert value of num Accordance with the following:
    num= 75 ===> Bchar[0]=7 Bchar=[1]=5 Bchar[2]=empty Bchar[3]=empty
    Instead of:
    num= 75 === bytetostr(num,x)==> Bchar=[0]=empty Bchar[1]=7 Bchar[2]=5 Bchar[3]=empty
    when use bytetostr it does not fill the leftmost part of array (x[0]) from the first.Achar and Bchar are 75 but in terms of strcmp they have difference
    ببخشين قبلا اينو توي يه فروم انگليسي نوشته بودم حال نداشتم فارسيش کنم.
  5. #5
    2006/09/27
    290
    8

    پاسخ : تبديل عدد چند رقمي به کاراکتر متناظر بدون استفاده از توابع داخلي

    من همین امروز نوشتم برای با Keil و ARM-gcc کار میکنه
    سعی کردم بهینه باشه ، از دوستان کسی باز هم پیشنهاد داشت بگه
    برای کامپایلر دیگه فقط باید "uint16_t" و "uint32_t" را عوض کنی مثلا بزاری int

    کد PHP:
    void itoa(int numchar str[]) {
      
    //this function convert integer to string - str[] must have enough space
      
    int len 0;
      
    int num_tmp;
      
    num_tmp num;

      
    //for negative number
      
    if (num_tmp &lt0) {
        
    num_tmp = -num_tmp;
        
    str[0] = '-';
        
    len++;
      }

      
    //Find length of int Number
      
    do {
        
    len++;
        
    num_tmp /= 10;
      } while (
    num_tmp);

      
    //return absolute number
      
    if (num &gt0)
        
    num_tmp num;
      else
        
    num_tmp = -num;

      
    //store to string
      
    str[len] = 0;
      do {
        
    len--;
        
    str[len] = num_tmp 10 + '0';
        
    num_tmp /= 10;
      } while (
    num_tmp);

    { خلاف قوانین - پاک شد }
  6. #6
    2007/04/28
    586
    2

    پاسخ : تبديل عدد چند رقمي به کاراکتر متناظر بدون استفاده از توابع داخلي

    نقل قول نوشته اصلی توسط amir6682
    مرسي دوست عزيز.مشکل من اين بود که در mikroc دستور bytetostr متغير مورد نظر رو به رشته تبديل ميکنه اما نمي تونه چينش صحيحي از آرايه ها رو داشته باشه.به همين خاطر خواستم خودم تابعي تعريف کنم.

    my problem is :
    ////////16F887////////
    char Achar[4],Bchar[4];
    int num=0,cmp=0;

    sbit LCD_RS at RC0_bit;
    sbit LCD_EN at RC1_bit;
    sbit LCD_D4 at RC2_bit;
    sbit LCD_D5 at RC3_bit;
    sbit LCD_D6 at RC4_bit;
    sbit LCD_D7 at RC5_bit;
    sbit LCD_RS_Direction at TRISC0_bit;
    sbit LCD_EN_Direction at TRISC1_bit;
    sbit LCD_D4_Direction at TRISC2_bit;
    sbit LCD_D5_Direction at TRISC3_bit;
    sbit LCD_D6_Direction at TRISC4_bit;
    sbit LCD_D7_Direction at TRISC5_bit;

    void main ()
    {
    Lcd_Init();
    Lcd_Cmd(_LCD_CLEAR);
    Lcd_Cmd(_LCD_CURSOR_OFF);


    Achar[0]='7';
    Achar[1]='5';
    Lcd_out(1,1,Achar);
    num=75;
    bytetostr(num,Bchar);
    Lcd_chr(2,1,Bchar[0]); //bchar[0]=empty It doesn't start form here and start from bchar[1] for fill array??
    Lcd_chr(2,2,Bchar[1]); //bchar[1]=7
    Lcd_chr(2,3,Bchar[2]); //bchar[2]=5
    Lcd_chr(2,4,Bchar[3]); //bchar[3]=empty
    cmp=strcmp(Bchar,Achar);
    if(cmp=0) //never been zero because in terms of strcmp they have difference
    RB0_bit=1;

    }

    for example when num= 75 , i want to convert value of num Accordance with the following:
    num= 75 ===> Bchar[0]=7 Bchar=[1]=5 Bchar[2]=empty Bchar[3]=empty
    Instead of:
    num= 75 === bytetostr(num,x)==> Bchar=[0]=empty Bchar[1]=7 Bchar[2]=5 Bchar[3]=empty
    when use bytetostr it does not fill the leftmost part of array (x[0]) from the first.Achar and Bchar are 75 but in terms of strcmp they have difference
    ببخشين قبلا اينو توي يه فروم انگليسي نوشته بودم حال نداشتم فارسيش کنم.
    شما تعداد بايت هاي Bchar بيشتر کن مشکلت حل ميشه
    هميشه بايد آخر بايد 0 باشه تا پايان رشته مشخص کنه
    با توجه با اينکه متغيير شما 2 بايتي هست و حداکثر مثدار 65535 ميتونه داشته باشه شما بايد متغيير Bchar بصورت زير تعريف کني
    کد:
    Char Bchar[6] = "";
    [size=1.45em][glow=red,2,300]تاپيک هاي ايجاد شده[/glow][/size]
    • [li]

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

      عضویت

      [/li]
  7. #7
    2007/11/08
    22
    0

    پاسخ : تبديل عدد چند رقمي به کاراکتر متناظر بدون استفاده از توابع داخلي

    Mohpooria جان بابت تابعي که نوشتي سپاسگذارم.مرسي :nice:
نمایش نتایج: از 1 به 7 از 7

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

  1. تبديل کاراکتر به int
    توسط lpln852 در انجمن میکروکنترلرهای AVR
    پاسخ: 20
    آخرين نوشته: 2014/10/08, 21:52
  2. پاسخ: 5
    آخرين نوشته: 2014/03/28, 21:03
  3. راه اندازی lcd بدون استفاده از codewizard و توابع lcd.h
    توسط s699fx_bpr در انجمن میکروکنترلرهای AVR
    پاسخ: 8
    آخرين نوشته: 2012/01/22, 22:03
  4. كمك در تبديل يك عدد 8 رقمي به 4 رقمي
    توسط AFSHARAN در انجمن برنامه نویسی و اینترفیس
    پاسخ: 9
    آخرين نوشته: 2010/04/26, 08:08
  5. تبديل 12 ولت به 30 ولت بدون استفاده از مبدل DC 2 DC
    توسط farshchian در انجمن منابع تغذيه
    پاسخ: 19
    آخرين نوشته: 2008/07/26, 21:38

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

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

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

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

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