二进制与十进制的互相转换

十进制转换为二进制:
例如:32
32/2=16 —-整除没有余数,所以为 0
16/2=8 0
8/2=4 0
4/2=2 0
2/2=1 0
1/2=0 有余数,所以为1
所以32转换为二进制为:100000,又因为是8位,所以是00100000

二进制转换为十进制:
例如:00100000 从右到左
1*2的5次方=32

1.按位与运算符 & :只有对应的两个二进制均为1时,结果才为1;否则为0.
2.按位或运算符 |:只要对应的两个二进制有一个为1,结果就为1.
3.按位异或运算符^:两个对应的二进位不相同,结果为1.
4.取反运算符~:二进制中的0变成1,1变成0.
5.左移运算符:<< 二进制左边的操作数去除掉相应的位数,由右边的0来补位.
6.右移运算符:>> 二进制右边的操作数去除掉相应的位数,由左边的0来补位.

在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、付费专栏及课程。

余额充值