Mega Code Archive

 
Categories / Java / Data Type
 

Encodes an integer into up to 4 bytes in network byte order in the supplied buffer

/*  *  Licensed to the Apache Software Foundation (ASF) under one  *  or more contributor license agreements.  See the NOTICE file  *  distributed with this work for additional information  *  regarding copyright ownership.  The ASF licenses this file  *  to you 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.  *  */ /**  * ByteUtilities.java - Byte manipulation functions.  *   * @author <a href="http://mina.apache.org">Apache MINA Project</a>  * @since MINA 2.0.0-M3  */      public class Util{     /**      * Encodes an integer into up to 4 bytes in network byte order.      *       * @param num the int to convert to a byte array      * @param count the number of reserved bytes for the write operation      * @return the resulting byte array      */     public static byte[] intToNetworkByteOrder(int num, int count) {         byte[] buf = new byte[count];         intToNetworkByteOrder(num, buf, 0, count);                  return buf;     }          /**      * Encodes an integer into up to 4 bytes in network byte order in the       * supplied buffer starting at <code>start</code> offset and writing      * <code>count</code> bytes.      *       * @param num the int to convert to a byte array      * @param buf the buffer to write the bytes to      * @param start the offset from beginning for the write operation      * @param count the number of reserved bytes for the write operation      */     public static void intToNetworkByteOrder(int num, byte[] buf, int start,             int count) {         if (count > 4) {             throw new IllegalArgumentException(                     "Cannot handle more than 4 bytes");         }         for (int i = count - 1; i >= 0; i--) {             buf[start + i] = (byte) (num & 0xff);             num >>>= 8;         }     } }