二进制十进制互相转换

2到2的十幂次方

分别为:
1,2,4,8,16,32,64,128,256,512,1024
它们对应的二进制分别为
1
10
100
1000
10000
100000
1000000
10000000
100000000
1000000000
10000000000

十进制转换二进制

计算
520

520=512+8

1000000000+1000=1000001000

二进制转换十进制

计算
100100100
如:
100100100= 100000000 +100000 +100
即:256+32+4=292

在C语言中,二进制十进制之间的转换可以通过使用标准库函数和位操作来实现。下面是一个简单的介绍和示例代码: 1. 十进制二进制: 在C语言中没有直接的函数可以将十进制转换二进制字符串,但可以通过位运算和循环打印的方式实现。下面是一个简单的转换函数示例: ```c #include <stdio.h> #include <string.h> void DecimalToBinary(int decimal, char *binary) { int remainder; int index = 0; // 保证传入的是非负整数 if(decimal < 0) { binary[index++] = '-'; decimal = -decimal; } // 循环直到商为0 while(decimal > 0) { remainder = decimal % 2; decimal = decimal / 2; binary[index++] = '0' + remainder; } // 因为是从低位到高位打印,所以需要反转字符串 for(int i = 0; i < index / 2; i++) { char temp = binary[i]; binary[i] = binary[index - i - 1]; binary[index - i - 1] = temp; } // 添加字符串结束符 binary[index] = '\0'; } int main() { int decimalNumber = 10; // 可以更改这个值来转换不同的十进制数 char binaryString[64]; // 假设二进制数不会超过64位 DecimalToBinary(decimalNumber, binaryString); printf("十进制数 %d 的二进制表示为: %s\n", decimalNumber, binaryString); return 0; } ``` 2. 二进制十进制: 可以通过计算每个二进制位的权重来实现转换,权重为2的幂次。 ```c #include <stdio.h> #include <string.h> #include <math.h> int BinaryToDecimal(const char *binary) { int decimal = 0; int length = strlen(binary); int power = 0; // 遍历二进制字符串 for(int i = length - 1; i >= 0; i--) { // 当前字符为'1'时,增加相应的权重 if(binary[i] == '1') { decimal += (int)pow(2, power); } power++; } return decimal; } int main() { const char *binaryNumber = "1010"; // 可以更改这个值来转换不同的二进制数 int decimal = BinaryToDecimal(binaryNumber); printf("二进制数 %s 的十进制表示为: %d\n", binaryNumber, decimal); return 0; } ``` 这些示例代码展示了如何在C语言中实现十进制二进制互相转换。需要注意的是,二进制十进制的方法计算了每个位的权重,而十进制二进制则通过不断除以2并记录余数的方式进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值