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

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

  1. #1
    کاربر دائمی آواتار vasilopita
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Dezfoul
    پست
    253

    نوشتن اعداد بصورت باینری

    سلام. من می خوام یک عدد رو بصورت باینری بنویسیم و در یک کاراکتر ذخیرش کنم؛ چجور می تونم باینری بنویسم. هگزادسیمال رو بلدم که با 0x شروع میشه ولی باینری رو نمی دونم.
    آخرین ویرایش به وسیله vasilopita : جمعه 14 بهمن 1390 در 17:30 عصر

  2. #2
    کاربر تازه وارد آواتار Omid707
    تاریخ عضویت
    مهر 1388
    محل زندگی
    قلمرو ممنوعه
    پست
    55

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

    نقل قول نوشته شده توسط vasilopita مشاهده تاپیک
    سلام. من می خوام یک عدد رو بصورت باینری بنویسیم و در یک کاراکتر ذخیرش کنم؛ چجور می تونم باینری بنویسم. هگزادسیمال رو بلدم که با 0x شروع میشه ولی باینری رو نمی دونم.
    سلام
    راستش من نمیدونم چطوری میشه عدد رو در کارکتر ذخیره کرد چون خود کارکتر ها هم کد اسکی که یه عدده دارند شاید منظور شما یک رشته بوده؟
    اما اگه منطق تبدیل اعداد رو بصورت باینری میخواهید اینکار با تقسیم های متوالی انجام میشه حوصله توضیح کامل ندارم قبلا یه برنامه برای تبدیل اعداد در مبناهای مختلف نوشتم ببین بدرد میخوره

     //جواب تمرین 18-5 ص 223
    /* باینری-عدد بر مبنای 2
    برای تبدیل دسیمال به باینری عدد را بطور متوالی بر 2 تقسیم می کنیم
    ودرنهایت از کنار هم قرار دادن ابتدا عدد آخرین خارج قسمت و سپس
    اعداد باقیمانده از راست به چپ بدست می آید
    */
    /* اوکتال-عدد بر مبنای 8
    برای تبدیل دسیمال به اوکتال عدد را بطور متوالی بر 8 تقسیم می کنیم
    ودرنهایت از کنار هم قرار دادن ابتدا عدد آخرین خارج قسمت و سپس
    اعداد باقیمانده از راست به چپ بدست می آید
    */
    /* هگزادسیمال-عدد بر مبنای 16
    برای تبدیل دسیمال به اوکتال عدد را بطور متوالی بر 16 تقسیم می کنیم
    ودرنهایت از کنار هم قرار دادن ابتدا عدد آخرین خارج قسمت و سپس
    اعداد باقیمانده از راست به چپ بدست می آید
    */
    #include <iostream>
    using std::cout;
    using std::cin;
    using std::endl;
    using std::fixed;
    using std::left;
    #include <cmath>
    #include <iomanip>
    using std::setprecision;
    using std::setw;

    int main()
    {
    int Decimal;
    int Binary;
    int Octal;
    int Hexadecimal;
    int Result;
    int s;
    int counter;

    cout<<left;
    cout<<setw(10)<<"Decimal"<<setw(15)<<"\tBinary\t"< <setw(6)
    <<" Octal\t"<<setw(10)<<"Hexadecimal"<<endl;

    for(int i=1;i<=256;i++)
    {
    //تبدیل عدد دسیمال به عدد باینری
    Decimal=i;
    Binary=0;
    counter=0;
    for(int t=Decimal;t>0;)
    {
    Result=Decimal/2;
    s=Decimal%2;

    Decimal=Result;
    Binary+=s*pow(static_cast<double>(10),counter);
    counter++;
    t=Decimal;
    }
    //تبدیل عدد دسیمال به عدد اوکتال
    Decimal=i;//قبل از شروع هر حلقه متغییر ها دوباره مقدار دهی میشوند
    Octal=0;
    counter=0;
    for(int t=Decimal;t>0;)
    {
    Result=Decimal/8;
    s=Decimal%8;

    Decimal=Result;
    Octal+=s*pow(static_cast<double>(10),counter);
    counter++;
    t=Decimal;
    }
    //تبدیل عدد دسیمال به عدد هگزادسیمال
    Decimal=i;
    Hexadecimal=0;
    counter=0;
    for(int t=Decimal;t>0;)
    {
    Result=Decimal/16;
    s=Decimal%16;

    Decimal=Result;
    Hexadecimal+=s*pow(static_cast<double>(10),counter );
    counter++;
    t=Decimal;
    }
    Decimal=i;

    cout<<setw(10)<<Decimal<<"\t"<<setw(15)<<Binary
    <<"\t"<<setw(6)<<Octal<<"\t"<<setw(10)<<Hexadecima l<<endl;
    }

    return 0;
    }

  3. #3
    کاربر دائمی آواتار vasilopita
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Dezfoul
    پست
    253

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

    ممنونم دوست عزیز ولی من نمی خوام تبدیل انجام بدم. دقیقا می خوام عدد رو بصورت باینری داشته باشم. از اونجایی که یک کاراکتر 8 بیت تشریف داره می شه یه عدد 8 بیتی در مبنای دو رو چپوند توش! حالا من مشکلم اینه که نمی دونم چجوری عدد رو باید بصورت دودویی بنویسم

  4. #4
    کاربر دائمی آواتار shahmohammadi
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    کلیبر
    پست
    475

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

    با سلام.
    در متن زیر گرامر مربوط به ثابت های عددی صحیح رو در سی می بینیم. همونطور که می بینید ثابت های عددی رو فقط به صورت ده تایی، هشت تایی، و شانزده تایی می شه نوشت و نوع باینری تو گرامر نیست. ولی به جاش می تونید از هگزا استفاده کنید چون چندان فرقی هم با هم ندارند. اگه تبدیل ذهنی این دوتا رو بلد باشید می بینید که کار با هگزا بهتره.
    Integer constants

    Syntax

    integer-constant:
    decimal-constant integer-suffix<opt>
    octal-constant integer-suffix<opt>
    hexadecimal-constant integer-suffix<opt>

    decimal-constant:
    nonzero-digit
    decimal-constant digit

    octal-constant:
    0
    octal-constant octal-digit

    hexadecimal-constant:
    0x hexadecimal-digit
    0X hexadecimal-digit
    hexadecimal-constant hexadecimal-digit

    nonzero-digit: one of
    1 2 3 4 5 6 7 8 9

    octal-digit: one of
    0 1 2 3 4 5 6 7

    hexadecimal-digit: one of
    0 1 2 3 4 5 6 7 8 9
    a b c d e f
    A B C D E F

    integer-suffix:
    unsigned-suffix long-suffix<opt>
    long-suffix unsigned-suffix<opt>

    unsigned-suffix: one of
    u U

    long-suffix: one of
    l L

  5. #5
    کاربر دائمی آواتار shahmohammadi
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    کلیبر
    پست
    475

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

    ماکرو هایی که برای این کار تعریف می شه عدد رو به صورت باینری می گیره و به صورت 0xhex حساب می کنه. (سرعت بالا)
    اینجا و اینجا هم با چند روش ماکرو رو تعریف کردند.
    موفق باشد.

  6. #6

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

    سلام. من می خوام یک عدد رو بصورت باینری بنویسیم و در یک کاراکتر ذخیرش کنم؛ چجور می تونم باینری بنویسم. هگزادسیمال رو بلدم که با 0x شروع میشه ولی باینری رو نمی دونم.
    همونطور که دوستان گفتند اینکار امکانپذیر نیست.
    شما باید اونو به hexadecimal تبدیل کنید.(با hexadecimal راحتتره! )

  7. #7
    کاربر دائمی آواتار vasilopita
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Dezfoul
    پست
    253

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

    از همگی دوستان ممنونم

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

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