exerciseopcodes.java
来自「This is a resource based on j2me embedde」· Java 代码 · 共 1,444 行 · 第 1/5 页
JAVA
1,444 行
} { long value1 = 0x5555AAAA5555AAAAl; int value2 = -1; long value = el.exerciseLShr(value1, value2); reportPassIf("exerciseLShr(value1, " + value2 + ")", value, (value1 >> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 0; long value = el.exerciseLShr(value1, value2); reportPassIf("exerciseLShr(value1, " + value2 + ")", value, (value1 >> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 63; long value = el.exerciseLShr(value1, value2); reportPassIf("exerciseLShr(value1, " + value2 + ")", value, (value1 >> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 64; long value = el.exerciseLShr(value1, value2); reportPassIf("exerciseLShr(value1, " + value2 + ")", value, (value1 >> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 65; long value = el.exerciseLShr(value1, value2); reportPassIf("exerciseLShr(value1, " + value2 + ")", value, (value1 >> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = -1; long value = el.exerciseLShrm1(value1); reportPassIf("exerciseLShrm1(value1)", value, (value1 >> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 0; long value = el.exerciseLShr0(value1); reportPassIf("exerciseLShr0(value1)", value, (value1 >> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 63; long value = el.exerciseLShr63(value1); reportPassIf("exerciseLShr63(value1)", value, (value1 >> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 64; long value = el.exerciseLShr64(value1); reportPassIf("exerciseLShr64(value1)", value, (value1 >> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 65; long value = el.exerciseLShr65(value1); reportPassIf("exerciseLShr65(value1)", value, (value1 >> value2)); } // Test LUShr permutations: { long value1 = 0xA555AAAA5555AAAAl; long value = el.exerciseLUShr(value1, 15); reportPassIf("exerciseLUShr(value1, 15)", value, (value1 >>> 15l)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = -1; long value = el.exerciseLUShr(value1, value2); reportPassIf("exerciseLUShr(value1, " + value2 + ")", value, (value1 >>> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 0; long value = el.exerciseLUShr(value1, value2); reportPassIf("exerciseLUShr(value1, " + value2 + ")", value, (value1 >>> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 63; long value = el.exerciseLUShr(value1, value2); reportPassIf("exerciseLUShr(value1, " + value2 + ")", value, (value1 >>> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 64; long value = el.exerciseLUShr(value1, value2); reportPassIf("exerciseLUShr(value1, " + value2 + ")", value, (value1 >>> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 65; long value = el.exerciseLUShr(value1, value2); reportPassIf("exerciseLUShr(value1, " + value2 + ")", value, (value1 >>> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = -1; long value = el.exerciseLUShrm1(value1); reportPassIf("exerciseLUShrm1(value1)", value, (value1 >>> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 0; long value = el.exerciseLUShr0(value1); reportPassIf("exerciseLUShr0(value1)", value, (value1 >>> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 63; long value = el.exerciseLUShr63(value1); reportPassIf("exerciseLUShr63(value1)", value, (value1 >>> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 64; long value = el.exerciseLUShr64(value1); reportPassIf("exerciseLUShr64(value1)", value, (value1 >>> value2)); } { long value1 = 0x5555AAAA5555AAAAl; int value2 = 65; long value = el.exerciseLUShr65(value1); reportPassIf("exerciseLUShr65(value1)", value, (value1 >>> value2)); } { long value = el.exerciseLStore(0, 0, 0, 0, 0l); reportPassIf("exerciseLStore(0, 0, 0, 0, 0l)", value, 1l); } { long value = el.exerciseLStore0(0l); reportPassIf("exerciseLStore0(0l)", value, 1l); } { long value = el.exerciseLStore1(0, 0l); reportPassIf("exerciseLStore1(0, 0l)", value, 1l); } { long value = el.exerciseLStore2(0, 0, 0l); reportPassIf("exerciseLStore2(0, 0, 0l)", value, 1l); } { long value = el.exerciseLStore3(0, 0, 0, 0l); reportPassIf("exerciseLStore3(0, 0, 0, 0l)", value, 1l); } { long value = el.exerciseLSub(2345l, 543l); reportPassIf("exerciseLSub(2345l, 543l)", value, (2345l - 543l)); } { long value1 = 0x55555555AAAAAAAAl; long value2 = 0x5555AAAA5555AAAAl; long value = el.exerciseLXor(value1, value2); reportPassIf("exerciseLXor(value1, value2)", value, (value1 ^ value2)); } if (verbose) { System.out.println(""); } // Exercise the Float opcodes: System.out.println("Testing Float Opcodes:"); ExerciseFloatOpcodes ef = new ExerciseFloatOpcodes(); { double value; value = ef.exerciseF2D(5.0f); reportPassIf("exerciseF2D(5.0f)", value, 5.0d); value = ef.exerciseF2D(0.0f); reportPassIf("exerciseF2D(0.0f)", value, (double)(0.0f)); value = ef.exerciseF2D(-0.0f); reportPassIf("exerciseF2D(-0.0f)", value, (double)(-0.0f)); value = ef.exerciseF2D(467.24856f); reportPassIf("exerciseF2D(467.24856f)", value, (double)(467.24856f)); value = ef.exerciseF2D(-467.24856f); reportPassIf("exerciseF2D(-467.24856f)", value, (double)(-467.24856f)); value = ef.exerciseF2D(Float.NaN); reportPassIf("exerciseF2D(Float.NaN)", value, (double)(Float.NaN)); value = ef.exerciseF2D(Float.POSITIVE_INFINITY); reportPassIf("exerciseF2D(Float.POSITIVE_INFINITY)", value, (double)(Float.POSITIVE_INFINITY)); value = ef.exerciseF2D(Float.NEGATIVE_INFINITY); reportPassIf("exerciseF2D(Float.NEGATIVE_INFINITY)", value, (double)(Float.NEGATIVE_INFINITY)); value = ef.exerciseF2D(Float.MAX_VALUE); reportPassIf("exerciseF2D(Float.MAX_VALUE)", value, (double)(Float.MAX_VALUE)); value = ef.exerciseF2D(-Float.MAX_VALUE); reportPassIf("exerciseF2D(-Float.MAX_VALUE)", value, (double)(-Float.MAX_VALUE)); value = ef.exerciseF2D(Float.MIN_VALUE); reportPassIf("exerciseF2D(Float.MIN_VALUE)", value, (double)(Float.MIN_VALUE)); value = ef.exerciseF2D(-Float.MIN_VALUE); reportPassIf("exerciseF2D(-Float.MIN_VALUE)", value, (double)(-Float.MIN_VALUE)); } { int value = ef.exerciseF2I(5.0f); reportPassIf("exerciseF2I(5.0f)", value, 5); } { long value = ef.exerciseF2L(5.0f); reportPassIf("exerciseF2L(5.0f)", value, 5l); } { float value; { float f3 = (float)16777215; float f4 = 2.0f; float f5 = (float)33554430; float f6 = (float)16777216; boolean success; value = ef.exerciseFAdd(f3, f4); success = reportPassIf("exerciseFAdd(" + f3 + ", " + f4 + ")", value, (f3 + f4)); if (!success) { dumpValue(f3); dumpValue(f4); } value = ef.exerciseFAdd(f3, f3); success = reportPassIf("exerciseFAdd(" + f3 + ", " + f3 + ")", value, (f3 + f3)); if (!success) { dumpValue(f3); dumpValue(f4); } } for (int j = 0; j < 48; j++) { float start3 = 1e10f; float a3 = 1e20f; float c3 = 3f; float c4 = 4f; float r0, r1, r2, r3, r7; float x; x = start3; for (int i = 0; i < j; i++) { r0 = x - a3; r7 = x + a3; r1 = c4 * x; r2 = r0 / r1; r3 = r2 * r7; x = r3; } value = ef.exerciseFSub(x, a3); reportPassIf("exerciseFSub(" + x + ", " + a3 + ")", value, (x - a3)); value = ef.exerciseFAdd(x, a3); reportPassIf("exerciseFAdd(" + x + ", " + a3 + ")", value, (x + a3)); } { float float1 = (1L << 24) - 1; // Max mantissa. value = ef.exerciseFAdd(float1, 0.5f); reportPassIf("exerciseFAdd((1L << 24) - 1, 0.5f)", value, (float1 + 0.5f)); value = float1 + 0.5f; float float2 = value; value = ef.exerciseFSub(float2, float1); reportPassIf("exerciseFSub( (((1L<<24)-1) + 0.5), 0.5f)", value, 1.0f); } value = ef.exerciseFAdd(1.0f, 1.0f); reportPassIf("exerciseFAdd(1.0f, 1.0f)", value, (1.0f + 1.0f)); value = ef.exerciseFAdd(1.0f, -1.0f);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?