整型和字符型相互转化及小数如何转化为二进制
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;
}
小数如何转换为二进制?
纯小数部分,乘以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;
}
相关文章推荐
- Cookies简介
- tarjan算法详解
- Java内存模型与线程
- 编程如练功,一日练得一日功,一日不练十日空。
- 关于yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
- Laravel
- 如何在weka中连接数据库(转)
- java web工程中获取webroot 路径
- Email邮件头揭密
- maven将依赖打成jar包
- Java中输入一个十进制数,如何转换为二进制数
- Unix系统编程(4) - 多进程并发服务器
- July 14th 模拟赛C T1 输油管道 Solution
- Android SugerORM框架的使用
- PHP常用代码:
- Learning Python 003 缩进
- 常见C++面试问题总结1
- 用Socket发送电子邮件3
- 由Unity發佈到Google Play的步驟
- CentOS7下安装部署LAMP环境