c语言十进制转二进制,用power
时间: 2024-05-09 17:14:47 浏览: 150
可以使用循环和power函数来将十进制数转换为二进制数。以下是一个简单的C语言代码示例:
```c
#include <stdio.h>
#include <math.h>
int main() {
int decimal, binary = 0, i = 0;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
while (decimal > 0) {
binary += (decimal % 2) * pow(10, i);
decimal /= 2;
i++;
}
printf("转换为二进制数为:%d", binary);
return 0;
}
```
在这个示例中,我们首先从用户输入获取一个十进制数。然后,我们使用while循环,将每个十进制位转换为二进制位,并将其添加到二进制数中。我们使用pow函数计算2的幂,然后将其乘以余数并将结果添加到二进制数中。最后,我们将结果打印出来。
相关问题
c语言二进制转换十进制代码
在C语言中,将二进制数转换成十进制数,你可以使用循环和位运算来逐位相加。这里是一个简单的函数示例:
```c
#include <stdio.h>
#include <math.h>
// 函数用于将二进制字符串转换为十进制整数
int binaryToDecimal(char* binary) {
int decimal = 0;
int power = 0;
for (int i = strlen(binary) - 1; i >= 0; i--) {
if (binary[i] == '1') {
decimal += pow(2, power);
}
power++;
}
return decimal;
}
int main() {
char binary[] = "1010";
int decimal_value = binaryToDecimal(binary);
printf("Binary %s is equal to decimal %d\n", binary, decimal_value);
return 0;
}
```
在这个例子中,`binaryToDecimal`函数从二进制字符串的最后一位开始,对于每一位,如果它是'1',就将对应的2的幂(power从0开始递增)加到decimal上。
c语言八进制转换10进制
在C语言中,将八进制数转换为十进制数通常通过取模运算和整数除法结合实现。八进制每一位对应的是三个二进制位(因为8=2^3),你可以按位相加然后累乘以8的幂次。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 函数用于将八进制字符串转换成十进制整数
int octal_to_decimal(char *octal_num) {
int decimal = 0;
int power = 0;
for (int i = strlen(octal_num) - 1; i >= 0; i--) {
if (octal_num[i] >= '0' && octal_num[i] <= '7') { // 检查字符是否为有效八进制数字
decimal += (octal_num[i] - '0') * pow(8, power); // 加上对应的数值并更新指数
power++;
} else {
printf("Invalid input: Non-octal digit found.\n");
return -1; // 非八进制字符,返回错误码
}
}
return decimal;
}
int main() {
char octal_str[] = "123"; // 示例八进制数
int decimal_num = octal_to_decimal(octal_str);
if (decimal_num != -1) {
printf("The decimal equivalent is: %d\n", decimal_num);
}
return 0;
}
```
在这个例子中,`octal_to_decimal`函数从八进制字符串的最后一位开始处理,每次循环都将当前位的值乘以8的相应次方,然后累加到结果上。
阅读全文
相关推荐













