十进制和二进制互相转换

在C语言中,可以编写函数来实现十进制二进制之间的互相转换。以下是两种转换的基本方法: 1. 十进制二进制: - 最直观的方法是通过不断地除以2并取余数的方式来得到二进制表示。具体做法是将十进制数不断除以2,然后将余数倒序排列,这样就得到了二进制数。 - 另一种方法是利用C语言的库函数,如` sprintf()` 或 `__builtinbitset()`(GCC编译器特有),可以直接将十进制转换二进制字符串。 2. 二进制十进制: - 通过遍历二进制字符串(从低位到高位),将每一位的值(0或1)乘以2的幂次,然后将这些结果累加起来,得到最终的十进制数。 - 同样,也可以使用`strtol()`(字符串转换为长整型数)这样的库函数来进行转换。 以下是一个简单的C语言代码示例,分别实现了十进制二进制二进制十进制的函数: ```c #include <stdio.h> #include <math.h> // 十进制二进制 void DecimalToBinary(int decimal) { int binaryNum[32]; // 假设二进制数不超过32位 int i = 0; while (decimal > 0) { binaryNum[i] = decimal % 2; decimal = decimal / 2; i++; } // 打印二进制数(倒序打印数组) for (int j = i - 1; j >= 0; j--) { printf("%d", binaryNum[j]); } printf("\n"); } // 二进制十进制 int BinaryToDecimal(const char *binary) { int decimal = 0; int length = strlen(binary); for (int i = 0; i < length; i++) { decimal += (binary[i] - '0') * pow(2, length - i - 1); } return decimal; } int main() { int decimal; char binary[33]; // 假设二进制字符串不超过32位,加上结束符'\0' // 用户输入 printf("请输入十进制数: "); scanf("%d", &decimal); printf("十进制数 %d 转换二进制为: ", decimal); DecimalToBinary(decimal); printf("请输入二进制数: "); scanf("%s", binary); printf("二进制数 %s 转换十进制为: %d\n", binary, BinaryToDecimal(binary)); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值