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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.codec; /** * Support Transforming between a character and the first 6 bits (0-63) of a Positive int. * <p/> * The 64 characters used are the Alpha-Numeric characters of 7-bit Ascii, a dash ('-'), and a period ('.'); in the following order: * <li>0-9</li> * <li>A-Z</li> * <li>a-z</li> * <li>'-'</li> * <li>'.'</li> * </p> * An additional <i>escape</i> character is maintained that is guaranteed to NOT be in the encoded 6 bit set, but still be human readable. */ public class SixBitCodec { public static final char NOT_USED_NOT = '!'; 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/Java/core/Anywhere/src/org/litesoft/codec/SixBitCodec.java
Revision | Author | Commited | Message |
---|---|---|---|
947 Diff | GeorgeS | Fri 06 Jun, 2014 23:36:56 +0000 | Correct Spelling of package! |
834 Diff | GeorgeS | Sun 02 Sep, 2012 14:00:11 +0000 | |
831 Diff | GeorgeS | Fri 31 Aug, 2012 22:39:56 +0000 | |
773 Diff | GeorgeS | Sun 15 Jul, 2012 22:39:12 +0000 | |
766 Diff | GeorgeS | Sat 14 Jul, 2012 16:38:04 +0000 | ! |
490 | GeorgeS | Fri 09 Sep, 2011 18:11:40 +0000 | Encoding |