C语言--iota函数

一、iota函数:功能:把一个整数转换为字符串。

eg:

#include<stdlib.h>
#include<stdio.h>
void main()
{
    int number=43;char string[100];
    iota(number,string,2);		//2代表转换为二进制。
    printf("原数=%d,二进制数=%s\n",number,string);

  
  
}

二、将一个int类型变量(4字节), 以二进制形式进行输出--showbits.c

/* 
*将var变量以二进制的形式进行输出, 
*/  
void showbits(int var)  
{//0x01020304  
    unsigned charchar *p = (unsigned charchar *)&var;     
    int i, j;  
      
    for(j=0; j<4; j++){//小端格式输出0x04030201  
        unsigned char byte = *p;//*(p+3)大端格式输出0x01020304  
        for(i=0; i<8; i++){  
            putchar(byte & 0x80 ? '1' : '0');  
            byte <<= 1;     
        }  
        putchar(' ');  
        p++;//p--     
    }  
    puts("");     
}  
  
int main()  
{  
    int a = 0x01020304;  
    showbits(a);  
      
    return 0;     
}  

三、将二进制数转换成十进制,一般是从字符串转换成一个整数,按位值乘以权值相累加得到结果。

如:1010=1*2^3+0*2^2+1*2+0 =((((1*2)+0)*2)+1)*2+0
将十进制数转换成二进制数,采用的原理就是辗转除2,逆向输出余数。(windows系统下的itoa函数也是一个不错的选择,但DIY更有意义)
实现方法:

#include <stdio.h>
void swap( char *a, char *b )
{
    char t=*a;
    *a=*b;
    *b=t;
}
char *reverse(char *s,int len)
{
    char *b=s, *e=s+len-1;
    while( b<e )
    {
        swap(b++,e--);
    }
    return s;
}
char *dec2bin(n)
{
    static char str[33];
    int i=0;
    do {
        str[i++]=n%2+'0';
        n/=2;
    }while( n );
    str[i]=0;
    return reverse(str,i);
}
int bin2dec(char *s)
{
    int i,n=0;
    for( i=0;s[i];i++ )
        n=n*2+s[i]-'0';
    return n;
}
void main()
{
    int n=100;
    char *p;
    p=dec2bin(n);
    printf("%d(D)=%s(B)\n", n, p );
    n=bin2dec(p);
    printf("%s(B)=%d(D)\n", p, n );
}
运行结果:

100(D)=1100100(B)

1100100(B)=100(D)

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值