Java Long to longToLex(long v)

Here you can find the source of longToLex(long v)

Description

Converts a regular java long to a lexicographical sortable long

License

Apache License

Parameter

Parameter Description
v a parameter

Declaration

public static byte[] longToLex(long v) 

Method Source Code

//package com.java2s;
/*/*from   w  w  w  .j a  v  a  2  s  . co m*/
 * Copyright 2013 Jive Software, Inc
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

public class Main {
    static private final long c64 = 0x8000000000000000L;

    /**
     * Converts a regular java long to a lexicographical sortable long
     *
     * @param v
     * @return
     */
    public static byte[] longToLex(long v) {
        v ^= c64;
        return longBytes(v, new byte[8], 0);
    }

    /**
     *
     * @param v
     * @param _bytes
     * @param _offset
     * @return
     */
    public static byte[] longBytes(long v, byte[] _bytes, int _offset) {
        _bytes[_offset + 0] = (byte) (v >>> 56);
        _bytes[_offset + 1] = (byte) (v >>> 48);
        _bytes[_offset + 2] = (byte) (v >>> 40);
        _bytes[_offset + 3] = (byte) (v >>> 32);
        _bytes[_offset + 4] = (byte) (v >>> 24);
        _bytes[_offset + 5] = (byte) (v >>> 16);
        _bytes[_offset + 6] = (byte) (v >>> 8);
        _bytes[_offset + 7] = (byte) v;
        return _bytes;
    }
}

Related

  1. longToCompare(Long value)
  2. longToDB(long val)
  3. longToEightBytes(final long value)
  4. longToFourBytes(long value)
  5. longToFrontInt(long data)
  6. longToLittleEndianBytes(long value, byte[] destination, int offset, int length)
  7. longToN62(long l)
  8. longToName(long l)
  9. longToNBuf(long l, char[] chars)