我想把一段ip压栈 然后分别处理 但不知道 怎么把他们压栈
比如:从192.168.0.1 到 241.168.169.5 中间的ip全部进栈 怎么做?

解决方案 »

  1.   

    把IP(ip_A.ip_B.ip_C.ip_D)转换成长整型  ip_A*256*256*256+ip_B*256*256+ip_C*256+ip_D
    相当于一个进制转换的问题
      

  2.   

    既然要入栈,效率是就是第一位的了,建议用:int32 intTemp=ip_A*<<24+ip_B<<16+ip_C<<8+ip_D移位操作要快得多。
      

  3.   

    to:flyye_cs(一叶孤舟)
    这种方法很好 可是总是溢出
    to: tajlolo(tajlolo) 
    我想把ip存进栈里 但出栈要的还是ip呀
    不知道 你有什么高见
      

  4.   

    long x = 192*256*256*256+168*256*256+0*256+1;这一句编译时说溢出 可我算了一下 不会呀
    为啥呀?
      

  5.   

    long x = 192L*256L*256L*256L+168*256*256+0*256+1;
      

  6.   

    因为在计算192*256*256*256时就溢出了...
    改成:
    long x = (long)192*256*256*256+168*256*256+0*256+1;
      

  7.   

    出栈的时候用"and位运算"分别提出你要的数据
    比如你要提取11111111的前四位将11111111&11110000计算就行了,后面不管是什么就不用管了,事实上在网络中子网的划分也是用子网掩码来执行这个运算,效率很高的。这是常用的效率高的手段。