c语言点分十进制IP转整型

简介: c语言点分十进制IP转整型
#include <iostream>
using namespace std;
char* intToBin(int a)
{
  char *str = (char *)malloc(8);
  memset(str, '0', 8);
  str[8] = '\0';
  //cout << strlen(str) << endl;
  int i = 7;
  while (a && i >= 0) {
    //cout << i << endl;
    //cout << a % 2;
    str[i--] = (a % 2 + '0');
    a /= 2;
  };
  return str;
}
int binToInt(const char *str)
{
  int ans = 0;
  for (int i = strlen(str) - 1; i >= 0; i--) {
    ans += (str[i] - '0') * (pow(2, strlen(str) - 1 - i));
  }
  return ans;
}
int arr[4] = { 0 };
int fun(const char *str) 
{
  int k = 3;
  for (int j = strlen(str) - 1, m = 1; j >= 0; j--) {
    if (str[j] == '.') {
      m = 1;
      k--;
      continue;   
    }
    arr[k] += m * (str[j] - '0');
    m = m * 10;
  }
  /*cout << arr[0] << endl;
  cout << arr[1] << endl;
  cout << arr[2] << endl;
  cout << arr[3] << endl;*/
  //cout << strlen(str) << endl;
  return 0;
}
int main()
{
  const char *s = "127.0.0.1";
  fun(s);
  char *str = (char *)malloc(33);
  memset(str, '\0', 33);
  for (int i = 0; i < 4; i++) {
    //cout << intToBin(arr[i]) << endl;
    memcpy(str + (i * 8), intToBin(arr[i]), 8);
  }
  cout << str << endl;
  cout << binToInt(str) << endl;
  //cout << fun(s) << endl;
  //cout << intToBin(127) << endl;
  return 0;
}
相关文章
|
6月前
|
C语言
【C语言】求整型变量和浮点型变量的绝对值
【C语言】求整型变量和浮点型变量的绝对值
126 0
|
6月前
|
存储 C语言
C语言实现二进制到十进制
C语言实现二进制到十进制
67 0
|
1月前
|
存储 C语言
C语言:设置地址为 0x67a9 的整型变量的值为 0xaa66
在C语言中,可以通过指针操作来实现对特定地址的访问和赋值。要将地址为 0x67a9 的整型变量值设为 0xaa66,可以先定义一个指向该地址的指针,并通过该指针对该内存位置进行赋值操作。需要注意的是,直接操作内存地址具有一定风险,必须确保地址合法且可写。代码示例应考虑字节序及内存对齐问题。
|
6月前
|
C语言
c语言表达式求值--整型提升
c语言表达式求值--整型提升
|
2月前
|
存储 C语言
【C语言基础考研向】04整型进制转换
本文介绍了计算机中整型常量的不同进制表示,包括二进制、八进制、十六进制和十进制,并解释了它们之间的转换方法。以一个32位整型数为例,展示了其在不同进制下的表示形式及计算方法,特别指出在内存观察中常用十六进制,同时提到了小端存储方式对数据的影响。
|
5月前
|
存储 编译器 C语言
C语言学习记录——数据的存储(数据类型、类型的基本归类、整型在内存中的存储、大小端介绍、浮点型在内存中的存储)一
C语言学习记录——数据的存储(数据类型、类型的基本归类、整型在内存中的存储、大小端介绍、浮点型在内存中的存储)一
58 2
|
5月前
|
存储 C语言
C语言整型详解
C语言整型详解
|
5月前
|
存储 编译器 C语言
【C语言】:整型提升,算术转换与大小端的介绍
【C语言】:整型提升,算术转换与大小端的介绍
38 0
|
5月前
|
C语言
C语言---单身狗(1)---在一个整型数组中,只有一个数字出现一次,其他数组都是成对出现的,请找出那个只出现一次的数字
C语言---单身狗(1)---在一个整型数组中,只有一个数字出现一次,其他数组都是成对出现的,请找出那个只出现一次的数字
|
5月前
|
存储 编译器 C语言
C语言学习记录——数据的存储(数据类型、类型的基本归类、整型在内存中的存储、大小端介绍、浮点型在内存中的存储)二
C语言学习记录——数据的存储(数据类型、类型的基本归类、整型在内存中的存储、大小端介绍、浮点型在内存中的存储)二
34 0