其他分享
首页 > 其他分享> > 常用c语言函数

常用c语言函数

作者:互联网

1、计算最大值和最小值

#define MAX( x, y ) ( ((x) > (y)) ? (x) : (y) )

#define MIN( x, y ) ( ((x) < (y)) ? (x) : (y) ) 

2、将一个字母转换为大写

#define CAPITAL( c ) ( ((c) >= 'a' && (c) <= 'z') ? ((c) - 0x20) : (c) ) 

3、获取数组元素个数

#define MY_SIZE( x ) ( sizeof( (x) ) / sizeof( (x[0]) ) )

4、将二进制字符串转化为十进制

static long bin_to_dec(const char *pbin)

{

 int ii=0;
 long result=0;

 while (pbin[ii] != 0) {
     result = result * 2 + (pbin[ii] - '0');
     ii++;
 }
 return result;
}

5、十进制转化为八进制

long dec_to_oct(long dec)

{

 int oct = 0, i = 0;
 i = 1;

 while (dec != 0){
     oct += (dec % 8) * i;
     dec /= 8;
     i *= 10;
 }
 return oct;
} 

6、十进制转化为二进制

long bec_to_bin(long n)

{

 long result=0,k=1,i,temp;
 temp = n;

 while(temp){
     i = temp%2;
     result = k * i + result;
     k = k*10;
     temp = temp/2;
 }
 printf("%ld\n", result);
 return result;
} 

7、十六进制转十进制

long lv_atk_hex_to_dex(char*s)
{

 int i,t;
 long sum=0;

 for(i=0;s[i];i++)
 {

 if(s[i]>= '0'  &&s[i]<='9')/* 当字符是'0'--'9'时,*-‘0'就行了 */
 {
           t=s[i]-'0';

 }

 if(s[i]>='a'&&s[i]<='z'){
           t=s[i]-'a'+10;/* 当字符是 abcdef 时,*-‘a’+10 就行了 */
 }

 if(s[i]>='A'&&s[i]<='Z')

 {
           t=s[i]-'A'+10;/* 当字符是 ABCDEF 时,*-‘A’+10 就行了 */
 }

       sum=sum*16+t;
 }

 return sum;
} 

8、八进制转十进制

long oct_to_dex(long n)

{

 int i=0,tmp,sum=0;
 while(n)
 {
       tmp=n%10;

       n=n/10;

       sum+=tmp*pow(8,i);

       i++;

 }

 printf("%d",sum);

 return sum;

} 

9、获取一个字的高位和地位

#define VALUE_L(x) ((byte) ((word)(x) & 255))

#define VALUE_H(x) ((byte) ((word)(x) >> 8)) 

标签:语言,常用,函数,sum,long,result,dec,oct,define
来源: https://blog.csdn.net/qq_42174306/article/details/122690845