تبدیل مبنای 10 به 16 در C - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تبدیل مبنای 10 به 16 در C

+1 امتیاز
توی C یا ++C آیا تابع آماده ای وجود داره که عدد رو از مبنای 10 به 16 تبدیل کنه ؟
سوال شده فروردین 3, 1393  بوسیله ی York (امتیاز 53)   4 7 11
دوباره تگ گذاری شد فروردین 3, 1393 بوسیله ی BlueBlade

2 پاسخ

+4 امتیاز

++C

از این flag برای تبدیل به hex( مبنا 16 ) استفاده کن :  std::hex

و از این flag  برای تبدیل به حروف بزرگ استفاده کن : std::uppercase

مثال :

#include <iostream>
#include <sstream>

int main()
{
    std::cout<<std::hex<<255<<'\n';
    std::cout<<std::hex<<std::uppercase<<255<<'\n';

    //zakhire dar string
    std::stringstream buf;
    buf<<std::hex<<255;
    std::string number=buf.str();
    std::cout<<number;
}

 


 

C

از %x  برای تبدیل به hex با حروف کوچیک و %X برای تبدیل به حروف بزرگ استفاده کن :

#include <stdio.h>

int main()
{    
   printf("%X",255);
   
   //zakhire dar array
   char num1[3];
   sprintf(num1,"%x",255);
   printf("%s \n",num1);

   return 0;
}
پاسخ داده شده فروردین 3, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
ویرایش شده فروردین 4, 1393 بوسیله ی BlueBlade
+3 امتیاز

بیا برو حالشو ببر

#include<stdio.h>
#include<conio.h>
#include<math.h>

void dec_hex(long int num)
{
long int rem[50],i=0,length=0;

while(num>0)
   {
      rem[i]=num%16;
      num=num/16;
      i++;
      length++;
   }

printf("Hexadecimal number : ");
for(i=length-1;i>=0;i--)
  {
    switch(rem[i])
    {
      case 10:
          printf("A");
          break;
      case 11:
          printf("B");
          break;
      case 12:
          printf("C");
          break;
      case 13:
          printf("D");
          break;
      case 14:
          printf("E");
          break;
      case 15:
          printf("F");
          break;
      default :
         printf("%ld",rem[i]);
    }
  }
}

int main()
{
long int num;
 printf("Enter the decimal number : ");
 scanf("%ld",&num);

    dec_hex(num);
 return 0;
}

خروجیش عکس زیر هست

پاسخ داده شده فروردین 4, 1393 بوسیله ی Fire360Boy (امتیاز 2,524)   6 24 43
...