使用c语言数制转换问题,要求:键盘输入一个十进制数,输出对应的二级制数。
时间: 2023-05-29 15:05:13 浏览: 91
以下是使用C语言编写的十进制数转二进制数的代码:
```c
#include <stdio.h>
int main() {
int decimalNum, binaryNum = 0, base = 1, remainder;
printf("Enter a decimal number: ");
scanf("%d", &decimalNum);
while (decimalNum > 0) {
remainder = decimalNum % 2;
binaryNum = binaryNum + remainder * base;
decimalNum = decimalNum / 2;
base = base * 10;
}
printf("Binary number is: %d", binaryNum);
return 0;
}
```
在上面的代码中,我们首先从用户那里获取一个十进制数,然后使用while循环将它转换为二进制数。在每次迭代中,我们计算十进制数的模数(即余数),并将其乘以适当的基数(1、10、100、1000等),并将其添加到二进制数中。最后,我们将十进制数除以2以进行下一次迭代,并将基数乘以10以准备下一个位。最后,我们打印出二进制数。
例如,如果输入的十进制数为10,则输出的二进制数为1010。
相关问题
数制转换问题,要求:键盘输入一个十进制数,输出对应的二级制数。
可以使用除2取余法进行十进制到二进制的转换,具体步骤如下:
1. 输入一个十进制数,保存到变量dec中。
2. 定义一个空字符串bin,用于存储二进制数。
3. 进行除2取余的循环操作,直到商为0为止。每次循环的步骤如下:
a. 计算商和余数,分别保存到变量q和r中:q=dec//2,r=dec%2。
b. 将余数r转换为字符串类型,然后添加到bin字符串的头部:bin = str(r) + bin。
c. 将商q赋值给dec,继续下一次循环。
4. 输出二进制数bin。
下面是Python程序示例:
```python
dec = int(input("请输入一个十进制数:"))
bin = ""
while dec > 0:
q = dec // 2
r = dec % 2
bin = str(r) + bin
dec = q
print("转换后的二进制数为:", bin)
```
例如,输入十进制数13,输出二进制数1101。
数制转换问题,要求:键盘输入一个十进制数,输出对应的二级制数。如:65à1000001B (要求采用顺序栈或链栈实现,或者分别实现。)
以下是使用顺序栈实现的代码:
```python
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def is_empty(self):
return len(self.items) == 0
def decimal_to_binary(decimal):
stack = Stack()
while decimal > 0:
remainder = decimal % 2
stack.push(remainder)
decimal //= 2
binary = ""
while not stack.is_empty():
binary += str(stack.pop())
return binary + "B"
decimal = int(input("请输入一个十进制数:"))
binary = decimal_to_binary(decimal)
print(f"{decimal}的二进制表示为:{binary}")
```
以下是使用链栈实现的代码:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class Stack:
def __init__(self):
self.top = None
def push(self, item):
node = Node(item)
node.next = self.top
self.top = node
def pop(self):
if self.is_empty():
raise Exception("栈已空")
item = self.top.data
self.top = self.top.next
return item
def is_empty(self):
return self.top is None
def decimal_to_binary(decimal):
stack = Stack()
while decimal > 0:
remainder = decimal % 2
stack.push(remainder)
decimal //= 2
binary = ""
while not stack.is_empty():
binary += str(stack.pop())
return binary + "B"
decimal = int(input("请输入一个十进制数:"))
binary = decimal_to_binary(decimal)
print(f"{decimal}的二进制表示为:{binary}")
```