`
canofy
  • 浏览: 828875 次
  • 性别: Icon_minigender_1
  • 来自: 北京、四川
社区版块
存档分类
最新评论

位操作实例

    博客分类:
  • j2EE
阅读更多
主要的类
package cn.IpUtils;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;



/**
 * yicha 
 * Sep 8, 2008 
 */

public class IpUtil {
	
	 private static final String CONFIG_RESOURCE = "/IPList.txt";
	
	 /**
     * 从配置文件读取IP区段信息,组成ArrayList返回
     */
    public ArrayList getIPSec() {
        
        InputStream ins = IpUtil.class
                .getResourceAsStream(CONFIG_RESOURCE);

        try {
            InputStreamReader fr = new InputStreamReader(ins,"utf-8");
            BufferedReader br = new BufferedReader(fr);
            String temp = br.readLine();
            StringBuffer sb = new StringBuffer();
            while (null != temp) {
                sb.append(temp);
                sb.append("\n");
                temp = br.readLine();
            }

            String[] ips = sb.toString().split("\n");
            if (null != sb && ips.length >= 2) {
                ArrayList al = new ArrayList();
                System.out.println(ips[0]);
                for (int i = 0; i < ips.length; i++) {                	
                    String[] a = ips[i].split("\t");
                    IpBean sec = new IpBean();
                    sec.setFrom(String.valueOf(this.convertIP(a[0])));
                    sec.setTo(a[1]);
                    sec.setPosition(a[2]);
                    sec.setId(i);
                    al.add(sec);
                }
                return al;
                
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }
	
	/**
     * 将IP转换为数字  位操作
     * 
     * @param ip
     * @return
     */
    private long convertIP(String ip) {
        long result = 0;
        String[] temp = ip.split("\\.");
        for (int i = 0; i < 4; i++) {
            String current = temp[i];
            result <<= 8;
            result += this.convertStringToInt(current);
        }
        return result;
    }
    
    /**
     * 类型转换
     * 
     * @param i
     * @return
     */
    private int convertStringToInt(String i) {
    	int result=0;
    	try{
    		result=Integer.parseInt(i);
    	}catch(Exception e){
    		System.err.println("错误");
    	}
        return result;
    }

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		IpUtil iputil=new IpUtil();
		//3402407245
//		long temp=iputil.convertIP("204.202.157.77");
//		System.out.println(temp+"");
		IpBean sec ;
		ArrayList list=iputil.getIPSec();
		for(int i=0;i<80;i++){
			sec=(IpBean)list.get(i);
			System.out.println(sec.getId()+"\t"+sec.getFrom()+"\t"+sec.getTo()+"\t"+sec.getPosition());
		}
	}
}


ip类:
package cn.IpUtils;

/**
 * yicha 
 * Sep 8, 2008 
 */

public class IpBean {
	private String from; // IP段起始
    private String to; // IP结束
    private String position; // 地理名称    
    private int id = 0;

	public String getFrom() {
		return from;
	}

	public void setFrom(String from) {
		this.from = from;
	}

	public String getTo() {
		return to;
	}

	public void setTo(String to) {
		this.to = to;
	}

	public String getPosition() {
		return position;
	}

	public void setPosition(String position) {
		this.position = position;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	
}

IPList中的内容:
220.194.48.134	220.194.048.134	北京联通
211.137.181.0	211.137.181.000	山东移动
211.137.181.1	211.137.181.001	山东移动
211.137.181.2	211.137.181.002	山东移动
211.137.181.3	211.137.181.003	山东移动
211.137.181.4	211.137.181.004	山东移动
211.137.181.5	211.137.181.005	山东移动


分享到:
评论

相关推荐

    Delphi 位操作实例代码.rar

    Delphi 位操作实例代码,支持Byte 及Integer。数学本来就不好左右都搞不清楚,每次看到 有shl shr xor and 都头大  所以就改了这个demo 本来这个是只支持 Byte 的 我改得支持 Integer 了,希望对自己和大家有点用...

    单片机C语言位操作实例

    本文给大家分享了单片机C语言位操作实例。

    C/C++位操作实例总结

    主要介绍了C/C++位操作实例总结,是C/C++程序设计中很重要的概念,需要的朋友可以参考下

    c语言程序设计实例精粹

    位操作实例则能帮助读者理解计算机底层的工作原理,提升低级别编程技能。 在实际编程中,错误处理和调试技巧也是必不可少的。书中可能包含关于如何使用assert宏进行断言检查,以及如何利用编译器的警告信息进行代码...

    操作系统小实例

    银行家算法、页面置换、输出所有安全序列、高响应比算法四个操作系统实例,还有一个位示图分配磁盘块示例,均带有界面,最好用netbeans打开。用eclipse打开的话,忽略.form文件,源码是.java文件的,可能需要你手动...

    usb上下位机简单实例

    这个"usb上下位机简单实例"是关于如何利用USB1.1规范实现一个完整的软硬件通信方案的示例。USB1.1是USB的第一个广泛采用的版本,它支持全速(12Mbps)和低速(1.5Mbps)两种传输速率。 在USB通信中,通常分为上位机...

    C#队列的操作实例

    总结,这个C#队列操作实例展示了如何使用标准的Queue类进行基本的队列操作,同时通过自定义逻辑实现了动态显示队头、队尾位置以及暂停功能。理解并熟练运用这些知识点,将有助于提升在实际开发中处理数据流和线程...

    64位进程调用32位DLL实例

    在现代计算机系统中,64位操作系统同时支持32位和64位应用程序的运行。然而,当64位进程需要调用32位动态链接库(DLL)时,会遇到一些挑战,因为两种架构之间存在兼容性问题。这篇内容将深入探讨64位进程如何调用32...

    台达PLC modbus通信上位机64位C#实例

    在项目属性中,选择“平台目标”为x64,以确保应用程序在64位操作系统上正确运行。 文件"Example_C# 2005"可能包含的是示例代码或相关资源,用于帮助开发者更好地理解如何在C#环境中实现这个功能。如果需要更详细的...

    C语言实例解析精粹_曹衍龙 实例

    7. **位操作**:讲解位运算的概念,如何利用位操作进行数据处理和优化。 8. **错误处理**:介绍如何使用assert函数进行调试,以及如何处理运行时错误。 9. **内存管理**:探讨堆内存的使用,包括malloc、calloc、...

    C++Builder精彩编程实例集锦的源代码前3部分.rar

    实例185 如何获取操作系统的产品序列号和产品名称 实例186 如何获取和设置鼠标双击响应速度 实例187 如何弹出和关闭光驱 实例188 如何检测网络连接 实例189 如何创建拨号网络 第六部分 数据库应用 实例190 ...

    单片机C语言实例位LED右移.zip

    本压缩包“单片机C语言实例位LED右移.zip”显然是一个关于使用C语言控制单片机进行位操作的实例,特别是针对LED显示的位右移操作。这里,我们将深入探讨这一主题,了解如何通过C语言编程实现位操作,并结合LED显示来...

    64位程序调用32位DLL实例.rar

    本实例将探讨如何在64位程序中调用32位DLL,以"64位程序调用32位DLL实例.rar"为例,其中包含了三个关键文件:My32Dll、ComService和Add64Client。 首先,`My32Dll`是一个32位DLL文件,它包含了一些功能函数,可能...

    十天学会单片机实例100

    5. 实例15至17涉及位操作,包括按位"异或"、逻辑"与"和条件运算,这是单片机处理二进制数据的关键技能。 6. 实例18和19展示了移位运算在控制LED流水灯中的应用,移位运算在单片机编程中常用于定时和计数。 7. 实例20...

    C语言的的100个应用实例

    8. **位运算**:C语言提供了丰富的位运算符,如按位与(&)、按位或(|)、按位异或(^)、左移()、右移(&gt;&gt;)等,实例将展示如何使用它们进行位操作。 9. **内存管理**:通过malloc、calloc、realloc和free等函数,学习...

    c语言编程实例 c语言高级编程实例

    其次,C语言高级编程实例则更进一步,涵盖了结构体、联合体、枚举、位运算、预处理宏、内存管理(如动态内存分配和释放)等内容。高级编程往往涉及到更复杂的算法和数据结构,比如链表、树、图等。这些实例有助于...

    ARM操作实例原代码(大家调试使用)

    这个压缩包中的“ARM操作实例原代码”很可能是为了帮助开发者理解和学习如何在ARM处理器上进行程序设计和调试。让我们深入探讨一下ARM架构的关键特性以及如何在实践中运用这些知识。 1. **ARM指令集**:ARM指令集是...

    labview实例大全

    实例可能涉及设置波特率、校验位、停止位,以及发送和接收数据的程序编写。 5. **自动复制程序**:这部分可能涉及到LabVIEW中的自动化操作,如文件复制,可能用于批量处理数据或自动备份重要文件。 6. **串口接收...

Global site tag (gtag.js) - Google Analytics