输入1个无符号二进制数串,编写程序将其转换成对应的十进制数,并输出
时间: 2023-05-02 16:03:07 浏览: 141
此题目要求编写程序将一个无符号二进制数转换成对应的十进制数,并输出。
解题思路:将输入的二进制数进行解码,然后转换成对应的十进制数,最后输出即可。
代码示例:
binary = b'\xe8\xbe\x93\xe5\x85\xa51\xe4\xb8\xaa\xe6\x97\xa0\xe7\xac\xa6\xe5\x8f\xb7\xe4\xba\x8c\xe8\xbf\x9b\xe5\x88\xb6\xe6\x95\xb0\xe4\xb8\xb2\xef\xbc\x8c'
# 解码二进制数
number = int(binary, 2)
# 转换成十进制数
decimal = int(str(number), 10)
# 输出结果
print(decimal)
相关问题
输入1个无符号二进制数串,编写程序将其转换成对应的十进制数,并输出。
你可以使用以下代码实现:
```
unsigned int binary_to_decimal(unsigned long long binary) {
unsigned int decimal = 0;
int i = 0;
while (binary != 0) {
decimal += (binary % 10) * pow(2, i);
++i;
binary /= 10;
}
return decimal;
}
```
使用这段代码,只需要将二进制数字作为参数调用函数 `binary_to_decimal()`,然后它会返回对应的十进制数。
编写程序:从键盘输入10个无符号十进制数(小于256),将其转换为二进制数并存放在NUM字节型变量中,找出其中的最大数,并将找出的最大数在屏幕上显示出来。 要求: ① 在屏幕上显示字符串提示信息的功能由宏指令DSTRING实现; ② 将键盘输入的十进制数转换成二进制数由子程序DTOB实现; ③ 在N个无符号字节型二进制数中找出最大数的功能由子程序FMAX实现; ④ 将一个无符号字节型二进制数转换为十进制数并在屏幕上显示的功能由子程序BTOAD实现。
以下是程序的代码实现:
```
#include <stdio.h>
#define DSTRING(str) printf(str) // 宏指令,用于显示提示信息
void DTOB(unsigned char num, unsigned char* binary) { // 子程序,将十进制数转换为二进制数
int i;
for (i = 7; i >= 0; i--) {
binary[i] = num % 2;
num /= 2;
}
}
unsigned char FMAX(unsigned char* nums) { // 子程序,找出最大的二进制数
int i;
unsigned char max = 0;
for (i = 0; i < 10; i++) {
if (nums[i] > max) {
max = nums[i];
}
}
return max;
}
void BTOAD(unsigned char* binary) { // 子程序,将二进制数转换为十进制数并显示
int i, num = 0;
for (i = 0; i < 8; i++) {
num = num * 2 + binary[i];
}
printf("%d\n", num);
}
int main() {
unsigned char nums[10][8]; // 存放二进制数
int i, j;
unsigned char max = 0;
for (i = 0; i < 10; i++) {
DSTRING("请输入一个十进制数(小于256):");
unsigned char num;
scanf("%hhu", &num);
DTOB(num, nums[i]); // 转换为二进制数
}
max = FMAX(nums[0]); // 找出最大的二进制数
for (i = 1; i < 10; i++) {
if (FMAX(nums[i]) > max) {
max = FMAX(nums[i]);
}
}
printf("最大的二进制数为:");
for (j = 0; j < 8; j++) { // 显示最大的二进制数
printf("%d", nums[i][j]);
}
printf("\n其对应的十进制数为:");
BTOAD(nums[i]); // 显示最大的二进制数对应的十进制数
return 0;
}
```
阅读全文