static long unassignedPrimaryFromCodePoint ( int c ) { // Create a gap before U+0000. Use c=-1 for [first unassigned]. ++ c ; // Fourth byte: 18 values, every 14th byte value (gap of 13). long primary = 2 + ( c % 18 ) * 14 ; c /= 18 ; // Third byte: 254 values. primary |= ( 2 + ( c % 254 ) ) << 8 ; c /= 254 ; // Second byte: 251 values 04..FE excluding the primary compression bytes. primary |= ( 4 + ( c % 251 ) ) << 16 ; // One lead byte covers all code points (c < 0x1182B4 = 1*251*254*18). return primary | ( ( long ) UNASSIGNED_IMPLICIT_BYTE << 24 ) ; }
Returns the unassigned - character implicit primary weight for any valid code point c .