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

📄 ext2utils.java

📁 纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统
💻 JAVA
字号:
/*
 * $Id: Ext2Utils.java,v 1.2 2003/12/26 08:11:03 epr Exp $
 */
package org.jnode.fs.ext2;

/**
 * @author Andras Nagy
 * every method copied from DosUtils
 */
public class Ext2Utils {
	/**
	 * Gets an unsigned 8-bit byte from a given offset
	 * @param offset
	 * @return int
	 */
	public static short get8(byte[] data, int offset) {
		return (short) (data[offset] & 0xFF);
	}

	/**
	 * Sets an unsigned 8-bit byte at a given offset
	 * @param offset
	 */
	public static  void set8(byte[] data, int offset, int value) {
		data[offset] = (byte)(value & 0xFF);
	}

	/**
	 * Gets an unsigned 16-bit word from a given offset
	 * @param offset
	 * @return int
	 */	
	public static int get16(byte[] data, int offset) {
		int b1 = data[offset] & 0xFF;
		int b2 = data[offset+1] & 0xFF;
		return (b2 << 8) | b1;
	}
	
	/**
	 * Sets an unsigned 16-bit word at a given offset
	 * @param offset
	 */
	public static void set16(byte[] data, int offset, int value) {
		data[offset] = (byte)(value & 0xFF);
		data[offset+1] = (byte)((value >> 8) & 0xFF);
	}

	/**
	 * Gets an unsigned 32-bit word from a given offset
	 * Can't read from blocks bigger in size than 2GB (32bit signed int)
	 * 
	 * @param offset
	 * @return int
	 */	
	public static long get32(byte[] data, int offset) {
		int b1 = data[offset] & 0xFF;
		int b2 = data[offset+1] & 0xFF;
		int b3 = data[offset+2] & 0xFF;
		int b4 = data[offset+3] & 0xFF;
		return (b4 << 24) | (b3 << 16) | (b2 << 8) | b1;
	}
	
	/**
	 * Sets an unsigned 32-bit word at a given offset
	 * @param offset
	 */
	public static void set32(byte[] data, int offset, int value) {
		data[offset] = (byte)(value & 0xFF);
		data[offset+1] = (byte)((value >> 8) & 0xFF);
		data[offset+2] = (byte)((value >> 16) & 0xFF);
		data[offset+3] = (byte)((value >> 32) & 0xFF);
	}

}

⌨️ 快捷键说明

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