【进制转换]输入一个十进制非负整数n,n<2^31。输出一个01字符串,即n对应的二进制数,不含前导0。输出占一行。 样例输入10 样例输出 1010样例输入 0样例输出 0
时间: 2024-12-29 09:35:12 浏览: 8
进制转换是指将一种数制的数值转换成另一种数制的过程。在这个题目中,我们需要将给定的十进制非负整数`n`(小于`2^31`),转换为二进制表示,并去除前导零。这是一个常见的基础编程任务。
对于样例输入10,它的二进制形式就是1010;而对于输入0,由于它本身就是二进制的基本单位,所以输出仍是0。
如果你需要编写程序来解决这个问题,可以使用循环或位操作来进行计算。这里是一个简单的Python示例:
```python
def decimal_to_binary(n):
binary = ''
while n > 0:
binary = str(n % 2) + binary
n //= 2
return binary or '0'
# 示例输入
input_decimal = 10
binary_output = decimal_to_binary(input_decimal)
print(binary_output) # 输出 "1010"
# 对于样例输入0
zero_input = 0
zero_binary = decimal_to_binary(zero_input)
print(zero_binary)
相关问题
输入一个非负十进制整数,利用数组将其转换为二进制形式输出。 输入:一个非负整数n (0<=n<2^31)。 输出:对应的二进制形式。用C语言
在C语言中,你可以使用`itoa()`函数或者自定义一个转换函数来将非负十进制整数转换为二进制字符串。这里是一个简单的示例,展示了如何使用递归实现这个功能:
```c
#include <stdio.h>
#include <string.h>
// 自定义的二进制转换函数
char* decimalToBinary(int n, char* binary) {
if (n == 0) {
binary[0] = '\0'; // 结束字符串
return binary;
} else {
// 将当前位添加到结果中
binary[strlen(binary)] = n % 2 + '0';
binary[strlen(binary) + 1] = '\0';
// 更新n值并继续递归
return decimalToBinary(n / 2, binary);
}
}
int main() {
int n = 15; // 例子中的输入
char binary[32]; // 预先分配足够空间存储31位二进制数,因为n < 2^31
if (decimalToBinary(n, binary)) {
printf("The binary representation of %d is: %s\n", n, binary);
}
return 0;
}
```
这个程序首先检查输入的数是否为零,如果是,则返回空字符串表示结束。否则,将当前位(n除以2的余数)添加到结果字符串的末尾,更新n的值并递归调用自身。最后在main函数中调用该函数并打印结果。
输入一个非负十进制整数,利用数组将其转换为二进制形式输出。 输入:一个非负整数n (0<=n<2^31)。 输出:对应的二进制形式。程序代码c++
在C++中,可以使用内置的`bitset`库或者手动实现循环来进行非负整数到二进制字符串的转换。以下是两个简单的例子:
1. 使用`bitset`库:
```cpp
#include <bitset>
#include <string>
std::string decimalToBinary(int n) {
std::bitset<31> binary(n); // 31位足够表示32位整数
return binary.to_string(); // .to_string()返回二进制字符串
}
int main() {
int n = 42;
std::cout << "二进制形式: " << decimalToBinary(n) << std::endl;
return 0;
}
```
2. 手动实现循环:
```cpp
#include <iostream>
std::string decimalToBinary(int n) {
std::string result = "";
while (n > 0) {
result = std::to_string(n % 2) + result; // 取余并添加到结果前面
n /= 2; // 整除2
}
if (result.empty()) result = "0"; // 如果原数是0,则直接返回"0"
return result;
}
int main() {
int n = 42;
std::cout << "二进制形式: " << decimalToBinary(n) << std::endl;
return 0;
}
```
运行以上任一程序,都会得到非负整数n的二进制表示。
阅读全文