C语言自定义函数int change(int str[],int num)函数把10进制转化2进制
时间: 2023-06-15 21:06:16 浏览: 50
下面是一个实现将十进制数转换为二进制数的C语言函数:
```c
int change(int str[], int num) {
int i = 0;
while (num > 0) {
str[i] = num % 2;
num = num / 2;
i++;
}
return i;
}
```
该函数的参数包括一个整型数组和一个十进制整数,返回值为转换后的二进制数的位数。
函数通过对输入的十进制数进行取余和整除操作,从低位到高位逐步计算出二进制数的每一位,并将结果存入数组中。最后返回数组中存储二进制数的位数。
相关问题
c语言把二进制转化为十进制的函数
C语言中把二进制转化为十进制可以使用以下函数:
```c
#include <stdio.h>
int binaryToDecimal(int binary)
{
int decimal = 0, base = 1;
int temp = binary;
while(temp > 0)
{
// 取二进制的最后一位,乘以对应进制位的权值,再累加
decimal += (temp % 10) * base;
// 更新二进制数,去掉最后一位
temp = temp / 10;
// 更新权值,进入下一位
base = base * 2;
}
return decimal;
}
int main()
{
int binaryNum;
printf("请输入一个二进制数:");
scanf("%d", &binaryNum);
int decimalNum = binaryToDecimal(binaryNum);
printf("对应的十进制数为:%d\n", decimalNum);
return 0;
}
```
上述代码中,定义了一个`binaryToDecimal`函数,输入一个二进制数,通过循环每次取二进制的最后一位,乘以对应进制位的权值,再累加到十进制数中,最后返回得到的十进制数。
在`main`函数中,读取用户输入的二进制数,然后调用`binaryToDecimal`函数进行二进制转化为十进制操作,并输出结果。
以上是一个简单的C语言函数,可有效地将二进制数转化为十进制。
C语言哪个函数可以进行10进制转化为16进制
在C语言中,可以使用 `sprintf()` 函数将一个整数转换为十六进制字符串。以下是一个简单的示例代码,将一个整数转换为十六进制格式的字符串:
```c
#include <stdio.h>
int main() {
int decimal_num = 12345;
char hex_str[20];
sprintf(hex_str, "%X", decimal_num);
printf("Decimal number %d in hexadecimal format is: %s", decimal_num, hex_str);
return 0;
}
```
输出结果为:
```
Decimal number 12345 in hexadecimal format is: 3039
```
在 `sprintf()` 函数中,`"%X"` 表示将整数转换为大写的十六进制字符串。如果要转换为小写的十六进制字符串,则可以使用 `"%x"`。