📄 hexfloatliterals.java
字号:
/* * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. *//* * @test * @bug 4920023 * @summary add "hexadecimal floating-point literal" support to javac as per 4896828 * @author gafter * * @compile -source 1.5 HexFloatLiterals.java * @run main HexFloatLiterals */public class HexFloatLiterals { public static void check(float a, float b) { if (a != b) throw new Error(a + " != " + b); } public static void check(double a, double b) { if (a != b) throw new Error(a + " != " + b); } public static void main(String[] args) { check(-0X.003p12d, Double.parseDouble("-0X.003p12d")); check(-0x.003P12F, Float.parseFloat("-0x.003P12F")); check(0x.006p11D, Double.parseDouble("0x.006p11D")); check(0X.00cP10D, Double.parseDouble("0X.00cP10D")); check(-0x.018P9, Double.parseDouble("-0x.018P9")); check(0x.018P9D, Double.parseDouble("0x.018P9D")); check(0X.018P9D, Double.parseDouble("0X.018P9D")); check(-0x.3p4F, Float.parseFloat("-0x.3p4F")); check(0x.3p4d, Double.parseDouble("0x.3p4d")); check(+0x.Cp2F, Float.parseFloat("+0x.Cp2F")); check(0X.cP2F, Float.parseFloat("0X.cP2F")); check(0x1.8p1d, Double.parseDouble("0x1.8p1d")); check(0X1.8p1D, Double.parseDouble("0X1.8p1D")); check(0X1.8p1f, Float.parseFloat("0X1.8p1f")); check(0X1.8P1, Double.parseDouble("0X1.8P1")); check(0x3p0d, Double.parseDouble("0x3p0d")); check(-0x3P0d, Double.parseDouble("-0x3P0d")); check(0X3P0, Double.parseDouble("0X3P0")); check(0x6.0p-1d, Double.parseDouble("0x6.0p-1d")); check(-0X6.0P-1, Double.parseDouble("-0X6.0P-1")); check(+0xC.0p-2f, Float.parseFloat("+0xC.0p-2f")); check(-0xC.0p-2F, Float.parseFloat("-0xC.0p-2F")); check(-0X3000000p-24, Double.parseDouble("-0X3000000p-24")); check(+0x3.0P0, Double.parseDouble("+0x3.0P0")); check(0x3.000000p0d, Double.parseDouble("0x3.000000p0d")); check(0x3.000000P0, Double.parseDouble("0x3.000000P0")); check(-0X3.000000p0, Double.parseDouble("-0X3.000000p0")); check(0X3.000000P0D, Double.parseDouble("0X3.000000P0D")); check(-0x0.0P-2044, Double.parseDouble("-0x0.0P-2044")); check(+0x0.0P2147483646, Double.parseDouble("+0x0.0P2147483646")); check(0X0.0p2147483647d, Double.parseDouble("0X0.0p2147483647d")); check(0X0.0p2147483647D, Double.parseDouble("0X0.0p2147483647D")); check(+0x0.0p2147483648, Double.parseDouble("+0x0.0p2147483648")); check(+0x0.0P2147483648D, Double.parseDouble("+0x0.0P2147483648D")); check(-0X0.0P-2147483649d, Double.parseDouble("-0X0.0P-2147483649d")); check(-0X0.0P-2147483648, Double.parseDouble("-0X0.0P-2147483648")); check(0X0.0P-2147483647F, Float.parseFloat("0X0.0P-2147483647F")); check(-0x0.0p9223372036854775806, Double.parseDouble("-0x0.0p9223372036854775806")); check(-0x0.0P9223372036854775806f, Float.parseFloat("-0x0.0P9223372036854775806f")); check(-0x0.0p9223372036854775807F, Float.parseFloat("-0x0.0p9223372036854775807F")); check(-0X0.0p9223372036854775807D, Double.parseDouble("-0X0.0p9223372036854775807D")); check(0X0.0P9223372036854775807D, Double.parseDouble("0X0.0P9223372036854775807D")); check(0x0.0p-9223372036854775807, Double.parseDouble("0x0.0p-9223372036854775807")); check(-0x0.0p-9223372036854775807F, Float.parseFloat("-0x0.0p-9223372036854775807F")); check(+0X0.0P-9223372036854775807D, Double.parseDouble("+0X0.0P-9223372036854775807D")); check(+0X0.0p-9223372036854775808d, Double.parseDouble("+0X0.0p-9223372036854775808d")); check(+0x1p0, Double.parseDouble("+0x1p0")); check(-0x1p0F, Float.parseFloat("-0x1p0F")); check(-0X1p0, Double.parseDouble("-0X1p0")); check(0X12P0F, Float.parseFloat("0X12P0F")); check(-0x123p0F, Float.parseFloat("-0x123p0F")); check(+0x123P0d, Double.parseDouble("+0x123P0d")); check(0X1234P0, Double.parseDouble("0X1234P0")); check(-0X12345p0f, Float.parseFloat("-0X12345p0f")); check(-0x123456p0F, Float.parseFloat("-0x123456p0F")); check(0X123456p0f, Float.parseFloat("0X123456p0f")); check(-0X123456p0f, Float.parseFloat("-0X123456p0f")); check(-0x1234567P0d, Double.parseDouble("-0x1234567P0d")); check(-0X1234567P0f, Float.parseFloat("-0X1234567P0f")); check(+0X123456789P0F, Float.parseFloat("+0X123456789P0F")); check(0x123456789ap0d, Double.parseDouble("0x123456789ap0d")); check(0x123456789ABp0, Double.parseDouble("0x123456789ABp0")); check(+0x123456789ABp0f, Float.parseFloat("+0x123456789ABp0f")); check(0X123456789abcP0F, Float.parseFloat("0X123456789abcP0F")); check(+0X123456789ABCDp0, Double.parseDouble("+0X123456789ABCDp0")); check(0x123456789ABCDEp0D, Double.parseDouble("0x123456789ABCDEp0D")); check(-0X0.3P0F, Float.parseFloat("-0X0.3P0F")); check(0X0.4P0F, Float.parseFloat("0X0.4P0F")); check(+0X0.4P0, Double.parseDouble("+0X0.4P0")); check(+0X0.5p0f, Float.parseFloat("+0X0.5p0f")); check(0X0.5p0d, Double.parseDouble("0X0.5p0d")); check(-0X0.5p0d, Double.parseDouble("-0X0.5p0d")); check(-0X0.6p0F, Float.parseFloat("-0X0.6p0F")); check(+0X0.6P0F, Float.parseFloat("+0X0.6P0F")); check(+0x0.8p0f, Float.parseFloat("+0x0.8p0f")); check(+0x0.8p0F, Float.parseFloat("+0x0.8p0F")); check(0x0.9P0D, Double.parseDouble("0x0.9P0D")); check(-0X0.Bp0, Double.parseDouble("-0X0.Bp0")); check(-0x0.CP0F, Float.parseFloat("-0x0.CP0F")); check(+0X0.Cp0d, Double.parseDouble("+0X0.Cp0d")); check(-0x0.dp0F, Float.parseFloat("-0x0.dp0F")); check(0x0.DP0F, Float.parseFloat("0x0.DP0F")); check(-0X0.eP0f, Float.parseFloat("-0X0.eP0f")); check(-0X1.000000000001p-1075, Double.parseDouble("-0X1.000000000001p-1075")); check(+0x0.FFFFFFFFFFFFF8p-1022, Double.parseDouble("+0x0.FFFFFFFFFFFFF8p-1022")); check(-0X1.FFFFFFFFFFFFF0000000P1023, Double.parseDouble("-0X1.FFFFFFFFFFFFF0000000P1023")); check(-0x1.FFFFFFFFFFFFF4p1023, Double.parseDouble("-0x1.FFFFFFFFFFFFF4p1023")); check(+0X1.ffffffffffffe7p1023d, Double.parseDouble("+0X1.ffffffffffffe7p1023d")); check(+0x1.FFFFFFFFFFFFE8000001p1023d, Double.parseDouble("+0x1.FFFFFFFFFFFFE8000001p1023d")); check(0x7FFFFFFFFFFFF80P-58, Double.parseDouble("0x7FFFFFFFFFFFF80P-58")); check(0xFFFFFFFFFFFFF00p-59, Double.parseDouble("0xFFFFFFFFFFFFF00p-59")); check(0xFFFFFFFFFFFFF00P-59d, Double.parseDouble("0xFFFFFFFFFFFFF00P-59d")); check(0XFFFFFFFFFFFFF00P-59d, Double.parseDouble("0XFFFFFFFFFFFFF00P-59d")); check(+0x1ffffffffffffe00p-60f, Float.parseFloat("+0x1ffffffffffffe00p-60f")); check(0x3ffffffffffffc00P-61d, Double.parseDouble("0x3ffffffffffffc00P-61d")); check(0X3ffffffffffffc00p-61d, Double.parseDouble("0X3ffffffffffffc00p-61d")); check(0X7FFFFFFFFFFFF800p-62F, Float.parseFloat("0X7FFFFFFFFFFFF800p-62F")); check(+0Xfffffffffffff000p-63D, Double.parseDouble("+0Xfffffffffffff000p-63D")); check(+0X7FFFFFFFFFFFF81p-58f, Float.parseFloat("+0X7FFFFFFFFFFFF81p-58f")); check(0xfffffffffffff02P-59D, Double.parseDouble("0xfffffffffffff02P-59D")); check(+0X7ffffffffffff810P-62, Double.parseDouble("+0X7ffffffffffff810P-62")); check(-0Xfffffffffffff020p-63, Double.parseDouble("-0Xfffffffffffff020p-63")); check(0Xfffffffffffff020p-63D, Double.parseDouble("0Xfffffffffffff020p-63D")); check(+0XFFFFFFFFFFFFF020P-63D, Double.parseDouble("+0XFFFFFFFFFFFFF020P-63D")); check(+0x7ffffffffffff82p-58, Double.parseDouble("+0x7ffffffffffff82p-58")); check(-0x7ffffffffffff82p-58f, Float.parseFloat("-0x7ffffffffffff82p-58f")); check(-0x7ffffffffffff82P-58D, Double.parseDouble("-0x7ffffffffffff82P-58D")); check(+0xFFFFFFFFFFFFF04p-59F, Float.parseFloat("+0xFFFFFFFFFFFFF04p-59F")); check(0Xfffffffffffff04P-59d, Double.parseDouble("0Xfffffffffffff04P-59d")); check(+0x7ffffffffffff820p-62D, Double.parseDouble("+0x7ffffffffffff820p-62D")); check(-0x7FFFFFFFFFFFF820P-62f, Float.parseFloat("-0x7FFFFFFFFFFFF820P-62f")); check(0xfffffffffffff040P-63d, Double.parseDouble("0xfffffffffffff040P-63d")); check(0x7FFFFFFFFFFFF84p-58, Double.parseDouble("0x7FFFFFFFFFFFF84p-58")); check(+0X7ffffffffffff84P-58d, Double.parseDouble("+0X7ffffffffffff84P-58d")); check(0X7FFFFFFFFFFFF84P-58f, Float.parseFloat("0X7FFFFFFFFFFFF84P-58f")); check(-0xfffffffffffff08P-59f, Float.parseFloat("-0xfffffffffffff08P-59f")); check(-0xFFFFFFFFFFFFF08P-59f, Float.parseFloat("-0xFFFFFFFFFFFFF08P-59f")); check(-0X1FFFFFFFFFFFFE10p-60F, Float.parseFloat("-0X1FFFFFFFFFFFFE10p-60F")); check(-0X3ffffffffffffc20P-61F, Float.parseFloat("-0X3ffffffffffffc20P-61F")); check(0X3FFFFFFFFFFFFC20P-61f, Float.parseFloat("0X3FFFFFFFFFFFFC20P-61f")); check(-0x7FFFFFFFFFFFF840P-62f, Float.parseFloat("-0x7FFFFFFFFFFFF840P-62f")); check(-0X7FFFFFFFFFFFF840p-62, Double.parseDouble("-0X7FFFFFFFFFFFF840p-62")); check(+0X7FFFFFFFFFFFF85p-58F, Float.parseFloat("+0X7FFFFFFFFFFFF85p-58F")); check(-0xFFFFFFFFFFFFF0Ap-59d, Double.parseDouble("-0xFFFFFFFFFFFFF0Ap-59d")); check(-0xfffffffffffff0aP-59d, Double.parseDouble("-0xfffffffffffff0aP-59d")); check(-0xfffffffffffff0aP-59D, Double.parseDouble("-0xfffffffffffff0aP-59D")); check(+0Xfffffffffffff0aP-59, Double.parseDouble("+0Xfffffffffffff0aP-59")); check(+0X1FFFFFFFFFFFFE14p-60f, Float.parseFloat("+0X1FFFFFFFFFFFFE14p-60f")); check(+0x3FFFFFFFFFFFFC28p-61, Double.parseDouble("+0x3FFFFFFFFFFFFC28p-61")); check(0x7ffffffffffff850P-62F, Float.parseFloat("0x7ffffffffffff850P-62F")); check(+0X7ffffffffffff850P-62, Double.parseDouble("+0X7ffffffffffff850P-62")); check(-0xFFFFFFFFFFFFF0Cp-59F, Float.parseFloat("-0xFFFFFFFFFFFFF0Cp-59F")); check(-0x1ffffffffffffe18p-60D, Double.parseDouble("-0x1ffffffffffffe18p-60D")); check(+0x1FFFFFFFFFFFFE18p-60, Double.parseDouble("+0x1FFFFFFFFFFFFE18p-60"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -