X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.utils%2Fsrc%2Forg%2Fsimantics%2Futils%2Fbytes%2FBEShort.java;h=b776ac29b7045aabc1ce6351580c83602135c3be;hp=8d5220c2085d4e1b44b289f7dba271c02438a816;hb=refs%2Fchanges%2F38%2F238%2F2;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.utils/src/org/simantics/utils/bytes/BEShort.java b/bundles/org.simantics.utils/src/org/simantics/utils/bytes/BEShort.java index 8d5220c20..b776ac29b 100644 --- a/bundles/org.simantics.utils/src/org/simantics/utils/bytes/BEShort.java +++ b/bundles/org.simantics.utils/src/org/simantics/utils/bytes/BEShort.java @@ -1,175 +1,175 @@ -/******************************************************************************* - * Copyright (c) 2007- VTT Technical Research Centre of Finland. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -/* - * Created on Jan 21, 2005 - * - * Copyright Toni Kalajainen - * - * 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 org.simantics.utils.bytes; - -/** - * Big Endian short <-> byte array conversions - * Motorola order, Network order - * - * @author Toni Kalajainen - */ -public class BEShort { - - /** - * Convert short to byte array - * @param l short value - * @return byte array - */ - public static byte[] toBytes(short value) - { - byte array[] = new byte[2]; - array[0] = (byte) (value & 0xff); - array[1] = (byte) ((value >> 8) & 0xff); - return array; - } - - /** - * Write short value to byte array - * @param value the short value - * @param array the byte array - * @param offset the offset - */ - public static void write(short value, byte array[], int offset) - { - if (offset+2>array.length) - throw new IndexOutOfBoundsException(); - array[0 + offset] = (byte) (value & 0xff); - array[1 + offset] = (byte) (value >> 8); - } - - /** - * Write short value to byte array - * @param value the short value - * @param array the byte array - * @param offset the offset - */ - public static void write(short value, byte array[]) - { - if (array.length<2) - throw new IndexOutOfBoundsException(); - array[0] = (byte) (value & 0xff); - array[1] = (byte) (value >> 8); - } - /** - * read short value from byte array - * @param array the array - * @param offset offset - * @return the value - */ - public static short toShort(byte array[], int offset) - { - if (offset+2>array.length) - throw new IndexOutOfBoundsException(); - short value = (short) - ( - ( ((short) array[0 + offset] & 0xFF) ) | - ( ((short) array[1 + offset] & 0xFF) << 8) - ); - return value; - } - - /** - * read short value from byte array - * @param array the array - * @return the value - */ - public static short toShort(byte array[]) - { - if (2>array.length) - throw new IndexOutOfBoundsException(); - short value = (short) - ( - ( ((short) array[0] & 0xFF) ) | - ( ((short) array[1] & 0xFF) << 8) - ); - return value; - } - - /** - * read short value from byte array - * @param array the array - * @param offset offset - * @return the value - */ - public static int toInt(byte array[], int offset) - { - if (offset+2>array.length) - throw new IndexOutOfBoundsException(); - short value = (short) - ( - ( ((short) array[0 + offset] & 0xFF) ) | - ( ((short) array[1 + offset] & 0xFF) << 8) - ); - return value; - } - /** - * Test cases - * @param args - */ - public static void main(String[] args) { - System.out.println("min="+Short.MIN_VALUE+" max="+Short.MAX_VALUE); - short value = (short) -513; - byte array[] = toBytes(value); - System.out.print(value); - System.out.print(" = "); - printByteArray(array); - System.out.println(); - - write(value, array, 0); - System.out.print(value); - System.out.print(" = "); - printByteArray(array); - System.out.println(); - - write(value, array); - System.out.print(value); - System.out.print(" = "); - printByteArray(array); - System.out.println(); - - value = toShort(array, 0); - printByteArray(array); - System.out.print(" = "); - System.out.print(value); - System.out.println(); - - value = toShort(array); - printByteArray(array); - System.out.print(" = "); - System.out.print(value); - System.out.println(); - } - - public static void printByteArray(byte array[]) { - for (short i=0; i byte array conversions + * Motorola order, Network order + * + * @author Toni Kalajainen + */ +public class BEShort { + + /** + * Convert short to byte array + * @param l short value + * @return byte array + */ + public static byte[] toBytes(short value) + { + byte array[] = new byte[2]; + array[0] = (byte) (value & 0xff); + array[1] = (byte) ((value >> 8) & 0xff); + return array; + } + + /** + * Write short value to byte array + * @param value the short value + * @param array the byte array + * @param offset the offset + */ + public static void write(short value, byte array[], int offset) + { + if (offset+2>array.length) + throw new IndexOutOfBoundsException(); + array[0 + offset] = (byte) (value & 0xff); + array[1 + offset] = (byte) (value >> 8); + } + + /** + * Write short value to byte array + * @param value the short value + * @param array the byte array + * @param offset the offset + */ + public static void write(short value, byte array[]) + { + if (array.length<2) + throw new IndexOutOfBoundsException(); + array[0] = (byte) (value & 0xff); + array[1] = (byte) (value >> 8); + } + /** + * read short value from byte array + * @param array the array + * @param offset offset + * @return the value + */ + public static short toShort(byte array[], int offset) + { + if (offset+2>array.length) + throw new IndexOutOfBoundsException(); + short value = (short) + ( + ( ((short) array[0 + offset] & 0xFF) ) | + ( ((short) array[1 + offset] & 0xFF) << 8) + ); + return value; + } + + /** + * read short value from byte array + * @param array the array + * @return the value + */ + public static short toShort(byte array[]) + { + if (2>array.length) + throw new IndexOutOfBoundsException(); + short value = (short) + ( + ( ((short) array[0] & 0xFF) ) | + ( ((short) array[1] & 0xFF) << 8) + ); + return value; + } + + /** + * read short value from byte array + * @param array the array + * @param offset offset + * @return the value + */ + public static int toInt(byte array[], int offset) + { + if (offset+2>array.length) + throw new IndexOutOfBoundsException(); + short value = (short) + ( + ( ((short) array[0 + offset] & 0xFF) ) | + ( ((short) array[1 + offset] & 0xFF) << 8) + ); + return value; + } + /** + * Test cases + * @param args + */ + public static void main(String[] args) { + System.out.println("min="+Short.MIN_VALUE+" max="+Short.MAX_VALUE); + short value = (short) -513; + byte array[] = toBytes(value); + System.out.print(value); + System.out.print(" = "); + printByteArray(array); + System.out.println(); + + write(value, array, 0); + System.out.print(value); + System.out.print(" = "); + printByteArray(array); + System.out.println(); + + write(value, array); + System.out.print(value); + System.out.print(" = "); + printByteArray(array); + System.out.println(); + + value = toShort(array, 0); + printByteArray(array); + System.out.print(" = "); + System.out.print(value); + System.out.println(); + + value = toShort(array); + printByteArray(array); + System.out.print(" = "); + System.out.print(value); + System.out.println(); + } + + public static void printByteArray(byte array[]) { + for (short i=0; i