Split int value into two byte buffer. - Java java.nio

Java examples for java.nio:ByteBuffer Int

Description

Split int value into two byte buffer.

Demo Code

/*//from   w w w. jav a  2 s .c  o  m
 * Copyright 1999-2012 Luca Garulli (l.garulli--at--orientechnologies.com)
 *
 * 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.
 */
//package com.java2s;
import java.nio.ByteBuffer;

public class Main {
    public static final int SIZE_OF_INT = 4;
    private static final int SIZE_OF_BYTE_IN_BITS = 8;
    private static final int MASK = 0x000000FF;

    /**
     * Split int value into two byte buffer. First byte of int will be written to first byte buffer and second to second one. How many
     * bytes will be written to first buffer determines based on <code>buffer.remaining()</code> value
     * 
     * @param buffer
     *          to write first part of value
     * @param buffer1
     *          to write second part of value
     */
    public static void splitIntToBuffers(ByteBuffer buffer,
            ByteBuffer buffer1, int iValue) {
        int remaining = buffer.remaining();
        int i;
        for (i = 0; i < remaining; ++i) {
            buffer.put((byte) (MASK & (iValue >>> SIZE_OF_BYTE_IN_BITS
                    * (SIZE_OF_INT - i - 1))));
        }
        for (int j = 0; j < SIZE_OF_INT - remaining; ++j) {
            buffer1.put((byte) (MASK & (iValue >>> SIZE_OF_BYTE_IN_BITS
                    * (SIZE_OF_INT - i - j - 1))));
        }
    }
}

Related Tutorials