⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unsigned.java

📁 java nio 编程一个实例子.服务端程序
💻 JAVA
字号:
package com.ronsoft.books.nio.buffers;import java.nio.ByteBuffer;/** * Utility class to get and put unsigned values to a ByteBuffer object. * All methods here are static and take a ByteBuffer object argument. * Since java does not provide unsigned primitive types, each unsigned * value read from the buffer is promoted up to the next bigger primitive * data type.  getUnsignedByte() returns a short, getUnsignedShort() returns * an int and getUnsignedInt() returns a long.  There is no getUnsignedLong() * since there is no primitive type to hold the value returned.  If needed, * methods returning BigInteger could be implemented. * Likewise, the put methods take a value larger than the type they will * be assigning.  putUnsignedByte takes a short argument, etc. * * @author Ron Hitchens (ron@ronsoft.com) * @version $Id: Unsigned.java,v 1.1 2002/02/12 22:06:44 ron Exp $ */public class Unsigned{	public static short getUnsignedByte (ByteBuffer bb)	{		return ((short)(bb.get() & 0xff));	}	public static void putUnsignedByte (ByteBuffer bb, int value)	{		bb.put ((byte)(value & 0xff));	}	public static short getUnsignedByte (ByteBuffer bb, int position)	{		return ((short)(bb.get (position) & (short)0xff));	}	public static void putUnsignedByte (ByteBuffer bb, int position,		int value)	{		bb.put (position, (byte)(value & 0xff));	}	// ---------------------------------------------------------------	public static int getUnsignedShort (ByteBuffer bb)	{		return (bb.getShort() & 0xffff);	}	public static void putUnsignedShort (ByteBuffer bb, int value)	{		bb.putShort ((short)(value & 0xffff));	}	public static int getUnsignedShort (ByteBuffer bb, int position)	{		return (bb.getShort (position) & 0xffff);	}	public static void putUnsignedShort (ByteBuffer bb, int position,		int value)	{		bb.putShort (position, (short)(value & 0xffff));	}	// ---------------------------------------------------------------	public static long getUnsignedInt (ByteBuffer bb)	{		return ((long)bb.getInt() & 0xffffffffL);	}	public static void putUnsignedInt (ByteBuffer bb, long value)	{		bb.putInt ((int)(value & 0xffffffffL));	}	public static long getUnsignedInt (ByteBuffer bb, int position)	{		return ((long)bb.getInt (position) & 0xffffffffL);	}	public static void putUnsignedInt (ByteBuffer bb, int position,		long value)	{		bb.putInt (position, (int)(value & 0xffffffffL));	}	// ---------------------------------------------------	public static void main (String [] argv)		throws Exception	{		ByteBuffer buffer = ByteBuffer.allocate (20);		buffer.clear();		Unsigned.putUnsignedByte (buffer, 255);		Unsigned.putUnsignedByte (buffer, 128);		Unsigned.putUnsignedShort (buffer, 0xcafe);		Unsigned.putUnsignedInt (buffer, 0xcafebabe);		for (int i = 0; i < 8; i++) {			System.out.println ("" + i + ": "				+ Integer.toHexString ((int)getUnsignedByte (buffer, i)));		}		System.out.println ("2: " + Integer.toHexString (getUnsignedShort (buffer, 2)));		System.out.println ("4: " + Long.toHexString (getUnsignedInt (buffer, 4)));	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -