litesoft
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
package com.temp.shared.utils;
/**
* Support Transforming between a character and the first 6 bits (0-63) of a
* Positive int.
* <p/>
* The 64 characters used are the ALph-Numeric characters of 7-bit Ascii, a dash
* ('-'), and a period ('.').
*/
public class SixBitCodec {
public static char encode(int pValue) {
if (pValue < 0) {
throw new IllegalArgumentException("Negative int not supported");
}
pValue = pValue & 63;
if (pValue < 10) {
return (char) ('0' + pValue);
}
if ((pValue -= 10) < 26) {
return (char) ('A' + pValue);
}
if ((pValue -= 26) < 26) {
return (char) ('a' + pValue);
}
return ((pValue -= 26) == 0) ? '-' : '.';
}
public static int decode(char pValue) {
if (('0' <= pValue) && (pValue <= '9')) {
return pValue - '0';
}
if (('A' <= pValue) && (pValue <= 'Z')) {
return (pValue - 'A') + 10;
}
if (('a' <= pValue) && (pValue <= 'z')) {
return (pValue - 'a') + 36;
}
if (pValue == '-') {
return 62;
}
if (pValue == '.') {
return 63;
}
throw new IllegalArgumentException("Unacceptable character '" + pValue + "': " + (int) pValue);
}
}
|
Revision |
Author |
Commited |
Message |
626
|
GeorgeS
|
Wed 11 Apr, 2012 19:39:41 +0000 |
|