litesoft
@ 964
litesoft / trunk / GWT_Sandbox / FormEngine / src / com / temp / common / shared / utils / SixBitCodec.java
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.common.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 ); } } |
Commits for litesoft/trunk/GWT_Sandbox/FormEngine/src/com/temp/common/shared/utils/SixBitCodec.java
Revision | Author | Commited | Message |
---|---|---|---|
964 | GeorgeS | Fri 01 Aug, 2014 03:18:23 +0000 | ! |