C语言二进制与十进制相互转换是一个比较常见的操作,它可以帮助我们更好地理解数据。二进制和十进制之间的转换可以使用以下几种方法:
1. 使用移位运算
#includeint main(void) { int n; scanf("%d", &n); int i; for (i = 31; i >= 0; i--) { printf("%d", (n >> i) & 0x1); } return 0; }
上面的代码可以将十进制数转换为二进制数,其中 n 为要转换的十进制数,i 为二进制位数,从最高位开始,每次右移一位,并与 0x1 做与运算,以获取当前位的值。
2. 使用除2取余法
#includeint main(void) { int n; scanf("%d", &n); int i; int a[32]; for (i = 0; n > 0; i++) { a[i] = n % 2; n /= 2; } for (i--; i >= 0; i--) { printf("%d", a[i]); } return 0; }
上面的代码可以将十进制数转换为二进制数,其中 n 为要转换的十进制数,i 为二进制位数,从最低位开始,每次除以 2 取余,以获取当前位的值。
3. 使用位掩码法
#includeint main(void) { int n; scanf("%d", &n); int i; int mask = 0x1; for (i = 0; i < 32; i++) { printf("%d", (n & mask) >> i); mask <<= 1; } return 0; }
上面的代码可以将十进制数转换为二进制数,其中 n 为要转换的十进制数,i 为二进制位数,从最高位开始,每次将掩码左移一位,并与 n 做与运算,以获取当前位的值。
以上是 C 语言二进制与十进制相互转换的三种方法,可以根据不同的需求选择不同的方法,以实现二进制与十进制之间的转换。