您的位置:首页 > 其它

整型和字符型相互转化及小数如何转化为二进制

2016-07-14 20:43 393 查看
atoi:将字符串转换为相应的数字的函数
 
小数如何转换为二进制?
纯小数部分,乘以2,若积小于1,本位为0,继续乘以2;
若积大于1,本位为1,积减去1所得的差再乘以2.
如此进行下去,直至差为0.
例如0.625,→1.25,记下0.1;
1.25-1=0.25,0.25*2=0.5,记下0.10。
0.5*2=1,
∴0.625转换为二进制的0.101.
-1.5转换为二进制的-1.1.
 
scanf遇到空格结束,而gets()不会,因为其无缓冲区
获取字符的方法:scanf(), gets(), getchar()
printf为行缓冲,遇到\n输出,或者满行输出
printf和scanf用的是同一个缓冲区
打印指针:%p    打印无符号整形:%u   打印十六进制:%x
 
 
将字符型转换为整型:
#include <stdio.h>
#include <string.h>
 
#define MAX_SIZE 100
 
int my_atoi(char *src)
{
    int flag = 1;
    
    int result = 0;
    
    if(*src == '-')
    {
        flag = -1;
src++;
    }
 
    while(*src != '\0')
    {
        if(*src >= '0' && *src <= '9')
{
    result = result * 10 + (*src - '0');
}
else
{
    break;
}

src++;
    }
 
    return result * flag;
}
 
int main()
{
    int i;
    int len;
    int result = 0;
    
    char src[MAX_SIZE] = {0};
 
    printf("Please input string:\n");
    gets(src);
     
    result = my_atoi(src);
 
    printf("result = %d\n",result);
 
    return 0;
}
 
 
将整型转换为字符型:
#include <stdio.h>
#include <string.h>
 
#define MAX_SIZE 1024
 
char * int2str(int num)
{
    char temp;
    static char result[MAX_SIZE] = {0};
 
    int i = 0;
    int len = 0;
    
    while(num != 0)
    {
        result[i] = (num  % 10) + '0' ;
num = num / 10;
 
i++;
    }
 
    result[i] = '\0';
 
    len = strlen(result);
 
    for(i = 0; i < len / 2; i++)
    {
        temp = result[i];
result[i] = result[len - 1 - i];
result[len - 1 - i] = temp;
    }
 
    return result;
}
 
int main()
{
    int num;
 
    printf("Please input num:\n");
    scanf("%d",&num);
 
    char *result = int2str(num);
 
    printf("result = %s\n",result);
 
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: