题目
本题是中国海洋大学编程题20题题库的第8题。
题目:
8.函数 void fun(int x,char *p) 实现十进制整数x到二进制的转换。
转换后的二进制数以字符串的形式放置于p所指向的数组中。
如:输入13,输出1101
输入-13,输出-1001
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj。QQ:2394799692
一、解题思路
思路:
int i = 0;
if (x < 0)//小于0的时候加上负号
{
*(p + i++) = ‘-’;
x = -x;
}
if (x == 0)//等于0的时候置为0
*(p + i++) = ‘0’;
while (x)//转换为二进制
{
*(p + i++) = x % 2 +‘0’;//先取余数
x /= 2;//再将x整除2
}
*(p + i) = ‘\0’;//末尾加上结束符形成字符串
puts§;//以字符串形式输出相应二进制
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
2.主函数部分
代码如下(示例):
void fun(int x, char* p)
{
int i = 0;
if (x < 0)//小于0的时候加上负号
{
*(p + i++) = '-';
x = -x;
}
if (x == 0)//等于0的时候置为0
*(p + i++) = '0';
while (x)//转换为二进制
{
*(p + i++) = x % 2 +'0';//先取余数
x /= 2;//再将x整除2
}
*(p + i) = '\0';//末尾加上结束符形成字符串
puts(p);//以字符串形式输出相应二进制
}
void main()
{
int x;
char p[128];
scanf("%d", &x);
fun(x, p);
}
三、执行结果
输入:
-13
输出:
-1011