/* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes; import java.util.Locale; public class utils { private utils() {} public final static int BIT0 = 1, BIT1 = 2, BIT2 = 4, BIT3 = 8, BIT4 = 16, BIT5 = 32, BIT6 = 64, BIT7 = 128, BIT8 = 256, BIT9 = 512, BIT10 = 1024, BIT11 = 2048, BIT12 = 4096, BIT13 = 8192, BIT14 = 16384, BIT15 = 32768; public static int setbit(final int num, final int bitnum, final boolean state) { return (state) ? (num | (1 << bitnum)) : (num & ~(1 << bitnum)); } public static String hex(final int num) { String s = Integer.toHexString(num).toUpperCase(Locale.US); if ((s.length() & 1) == 1) { s = "0" + s; } return s; } public static String hex(final long num) { String s = Long.toHexString(num).toUpperCase(Locale.US); if ((s.length() & 1) == 1) { s = "0" + s; } return s; } public static int reverseByte(int nibble) { //reverses 8 bits packed into int. return (Integer.reverse(nibble) >> 24) & 0xff; } public static void printarray(final int[] a) { StringBuilder s = new StringBuilder(); for (int i : a) { s.append(i); s.append(", "); } if (s.length() >= 1) { s.deleteCharAt(s.length() - 1); } s.append("\n"); System.err.print(s.toString()); } public static void printarray(final boolean[] a) { StringBuilder s = new StringBuilder(); for (boolean i : a) { s.append(i); s.append(", "); } if (s.length() >= 1) { s.deleteCharAt(s.length() - 1); } s.append("\n"); System.err.print(s.toString()); } public static void printarray(final double[] a) { StringBuilder s = new StringBuilder(); for (double i : a) { s.append(i); s.append(", "); } if (s.length() >= 1) { s.deleteCharAt(s.length() - 1); } s.append("\n"); System.err.print(s.toString()); } public static void printarray(final float[] a) { StringBuilder s = new StringBuilder(); for (float i : a) { s.append(i); s.append(", "); } if (s.length() >= 1) { s.deleteCharAt(s.length() - 1); } s.append("\n"); System.err.print(s.toString()); } public static void printarray(final Object[] a) { StringBuilder s = new StringBuilder(); for (Object i : a) { s.append(i.toString()); s.append(", "); } if (s.length() >= 1) { s.deleteCharAt(s.length() - 1); } s.append("\n"); System.err.print(s.toString()); } public static int max(final int[] array) { int m = array[0]; for (Integer i : array) { if (i > m) { m = i; } } return m; } }