📄 bits.java
字号:
/****************************************************************************
* Package : com.ecSolutions.ecAppServer.server.buffer
* File : Bits.java
* Create Date : 2007-7-20
* Author : Steven Chen
*
* Copyright(C) 2006 ecSolutions(shanghai) Co.,Limited.All Rights Reserved.
*
***************************************************************************/
package com.ecSolutions.ecAppServer.server.buffer;
import com.ecSolutions.ecAppServer.server.Buffer;
/**
* Bits operate.
*
* @author Steven Chen
* @version $Id: Bits.java,v 1.2 2007/07/26 03:14:22 stevenchen Exp $
*/
class Bits {
static Buffer encodeShort(AbstractBuffer buffer, int index, short s) {
byte b1, b2;
if (buffer.isBigEndian()) {
b1 = (byte) (s >> 8);
b2 = (byte) (s >> 0);
} else {
b1 = (byte) (s >> 0);
b2 = (byte) (s >> 8);
}
buffer._put(index + 0, b1);
buffer._put(index + 1, b2);
return buffer;
}
static short decodeShort(AbstractBuffer buffer, int index) {
byte b1, b2;
if (buffer.isBigEndian()) {
b1 = buffer._get(index + 0);
b2 = buffer._get(index + 1);
} else {
b1 = buffer._get(index + 1);
b2 = buffer._get(index + 0);
}
return (short) ((b1 << 8) | (b2 & 0xff));
}
static Buffer encodeInt(AbstractBuffer buffer, int index, int i) {
byte b1, b2, b3, b4;
if (buffer.isBigEndian()) {
b1 = (byte) (i >> 24);
b2 = (byte) (i >> 16);
b3 = (byte) (i >> 8);
b4 = (byte) (i >> 0);
} else {
b1 = (byte) (i >> 0);
b2 = (byte) (i >> 8);
b3 = (byte) (i >> 16);
b4 = (byte) (i >> 24);
}
buffer._put(index + 0, b1);
buffer._put(index + 1, b2);
buffer._put(index + 2, b3);
buffer._put(index + 3, b4);
return buffer;
}
static int decodeInt(AbstractBuffer buffer, int index) {
byte b1, b2, b3, b4;
if (buffer.isBigEndian()) {
b1 = buffer._get(index + 0);
b2 = buffer._get(index + 1);
b3 = buffer._get(index + 2);
b4 = buffer._get(index + 3);
} else {
b1 = buffer._get(index + 3);
b2 = buffer._get(index + 2);
b3 = buffer._get(index + 1);
b4 = buffer._get(index + 0);
}
return (int) ((((b1 & 0xff) << 24) | ((b2 & 0xff) << 16)
| ((b3 & 0xff) << 8) | ((b4 & 0xff) << 0)));
}
static Buffer encodeLong(AbstractBuffer buffer, int index, long l) {
byte b1, b2, b3, b4, b5, b6, b7, b8;
if (buffer.isBigEndian()) {
b1 = (byte) (l >> 56);
b2 = (byte) (l >> 48);
b3 = (byte) (l >> 40);
b4 = (byte) (l >> 32);
b5 = (byte) (l >> 24);
b6 = (byte) (l >> 16);
b7 = (byte) (l >> 8);
b8 = (byte) (l >> 0);
} else {
b1 = (byte) (l >> 0);
b2 = (byte) (l >> 8);
b3 = (byte) (l >> 16);
b4 = (byte) (l >> 24);
b5 = (byte) (l >> 32);
b6 = (byte) (l >> 40);
b7 = (byte) (l >> 48);
b8 = (byte) (l >> 56);
}
buffer._put(index + 0, b1);
buffer._put(index + 1, b2);
buffer._put(index + 2, b3);
buffer._put(index + 3, b4);
buffer._put(index + 4, b5);
buffer._put(index + 5, b6);
buffer._put(index + 6, b7);
buffer._put(index + 7, b8);
return buffer;
}
static long decodeLong(AbstractBuffer buffer, int index) {
byte b1, b2, b3, b4, b5, b6, b7, b8;
if (buffer.isBigEndian()) {
b1 = buffer._get(index + 0);
b2 = buffer._get(index + 1);
b3 = buffer._get(index + 2);
b4 = buffer._get(index + 3);
b5 = buffer._get(index + 4);
b6 = buffer._get(index + 5);
b7 = buffer._get(index + 6);
b8 = buffer._get(index + 7);
} else {
b1 = buffer._get(index + 7);
b2 = buffer._get(index + 6);
b3 = buffer._get(index + 5);
b4 = buffer._get(index + 4);
b5 = buffer._get(index + 3);
b6 = buffer._get(index + 2);
b7 = buffer._get(index + 1);
b8 = buffer._get(index + 0);
}
return (((long) b1 & 0xff) << 56) | (((long) b2 & 0xff) << 48)
| (((long) b3 & 0xff) << 40) | (((long) b4 & 0xff) << 32)
| (((long) b5 & 0xff) << 24) | (((long) b6 & 0xff) << 16)
| (((long) b7 & 0xff) << 8) | (((long) b8 & 0xff) << 0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -