编写一个C语言程序输出1到10 的二进制和十进制,一行一行输出
时间: 2023-04-04 12:00:25 浏览: 107
十进制 二进制
1 0001
2 001
3 0011
4 010
5 0101
6 011
7 0111
8 100
9 1001
10 101
以下是程序代码:
#include <stdio.h>
int main() {
int i;
printf("十进制\t二进制\n");
for (i = 1; i <= 10; i++) {
printf("%d\t", i);
printf("%04d\n", b000 | i);
}
return ;
}
相关问题
用c语言编写一个1到10的 十进制和30bit的二进制的输出,一行一行的输出
#include <stdio.h>
int main() {
int i;
printf("十进制\t二进制\n");
for(i=1; i<=10; i++) {
printf("%d\t", i);
int j, binary[30] = {};
for(j=; i>; j++) {
binary[j] = i%2;
i /= 2;
}
for(j=29; j>=; j--) {
printf("%d", binary[j]);
}
printf("\n");
}
return ;
}
如何用C语言写一个点分十进制IP地址转换的程序
在C语言中编写一个点分十进制IP地址(如192.168.0.1)转换成二进制表示的程序,可以分为以下几个步骤:
1. 定义结构体存储IP地址的四个部分(每个部分是一个字节):
```c
struct IPAddress {
unsigned char octet[4];
};
```
2. 接收用户输入并验证IP地址的有效性:
```c
void parseIPv4(char *input) {
char *octets[] = {input + 0, input + 3, input + 7, input + 10};
struct IPAddress ip;
if (sscanf(octets[0], "%d", &ip.octet[0]) == 1 &&
sscanf(octets[1], "%d", &ip.octet[1]) == 1 &&
sscanf(octets[2], "%d", &ip.octet[2]) == 1 &&
sscanf(octets[3], "%d", &ip.octet[3]) == 1 &&
ip.octet[0] <= 255 && ip.octet[1] <= 255 &&
ip.octet[2] <= 255 && ip.octet[3] <= 255) {
// IP地址有效,继续转换
} else {
printf("Invalid IP address.\n");
return;
}
}
```
3. 将字节转换为二进制字符串:
```c
void toBinary(struct IPAddress ip) {
for (int i = 0; i < sizeof(ip.octet); i++) {
int binary = ip.octet[i];
while (binary > 0) {
printf("%d", binary % 2);
binary /= 2;
}
printf(".");
}
printf("\n");
}
```
4. 主函数将上述功能整合起来:
```c
int main() {
char ip_str[16];
printf("Enter an IPv4 address in dotted decimal format: ");
fgets(ip_str, sizeof(ip_str), stdin);
// 移除行尾的换行符
ip_str[strlen(ip_str)-1] = '\0';
parseIPv4(ip_str);
if (!strcmp(ip_str, "Invalid IP address.")) {
return 1;
}
struct IPAddress ip;
toBinary(ip);
return 0;
}
```
这个程序首先提示用户输入IP地址,然后检查它是否有效。如果有效,则将其拆分成四个字节,并分别转换为二进制形式。
阅读全文