【发布时间】:2013-04-11 00:07:40
【问题描述】:
我有一个这样的IP地址:
address = '192.168.1.11';
并需要将其转换为二进制格式
11000000 10101000 00000001 00001011
我对如何左移十进制数和使用 inet_addr 有一些想法,但不知道该怎么做。
谢谢,我还是 C 的新手。
【问题讨论】:
-
您想打印二进制字符串,还是只提供 4 个数字?困难的部分是将一个 8 位数字转换为一串二进制数字;标准 C 中没有一个简单的函数可以做到这一点。
-
@JonathanLeffler 我怀疑 OP 实际上只是想将其转换为本机整数类型,而不是“二进制格式”。大多数人对表示的概念感到困惑。
-
您不想“通过”“。”进行解析;这 '。'告诉您何时到达数字的末尾。如果您发布一些代码以便人们可以看到您遇到的问题,您会得到更好的帮助。
-
原生整数类型类似于
char、short、int、long等。既然您需要位,那就是您想要的。当您谈论“格式”并将其显示为 0 和 1 和空格时,它看起来像一个字符串,乔纳森就是这样解释它的。请注意,虽然硬件将数字表示为一堆位,但它们没有“格式”……它们与二进制一样多是八进制或十六进制。所以你想要一些价值 0xC0A8010B -
我明白了。感谢您的建议。下次我会更清楚。
标签: c ip-address