【每周一算】数字魔法(特殊的数字)

博客介绍了Java中存在的一些特殊数字,其结果与常规逻辑不同,例如绝对值为负数、加1后比自身更小等情况,还欢迎读者留言分享其他有意思的数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在java中存在一些特殊的数字,他的结果可能跟我们的常规逻辑不一样,比如绝对值式负数、加1反而比自己更小...

来看一下。

/**
 * @description: 数字魔法
 * @author: JandMin
 **/
public class MagicNumber {
    public static void main(String[] args) {
        // 越界数字
        overstep();
        System.out.println("------------------  ----------------");
        // 浮点数的奥秘
        decimalSecret();
    }

    /**
     * 特殊的浮点数
     */
    private static void decimalSecret() {
        System.out.println("======== 是否存这么一个数,使得 i == i+1 ======");
        double i = Double.POSITIVE_INFINITY;
        System.out.println("Double.POSITIVE_INFINITY = " + i + " 加1 :" + (i + 1)); // Double.POSITIVE_INFINITY = Infinity 加1 :Infinity
        System.out.println("i == i + 1:" + (i == (i + 1))); // i == i + 1:true

        System.out.println("======== 是否存这么一个数,使得 i == i-1 ======");
        System.out.println("Double.POSITIVE_INFINITY = " + i + " 减1 :" + (i - 1)); // Double.POSITIVE_INFINITY = Infinity 减1 :Infinity
        System.out.println("i == i - 1:" + (i == (i - 1))); // i == i - 1:true

        System.out.println("======== 是否存这么一个数,使得 j != j ======");
        double j = Double.NaN;
        System.out.println("Double.NaN = " + j + " j != j :" + (j != j)); // Double.NaN = NaN j != j :true

    }

    /**
     * 数字越界
     */
    private static void overstep() {
        System.out.println("======== 存在这么一个数:它的绝对值是负数 ======");
        System.out.println("Double.MIN_VALUE = " + Double.MIN_VALUE + " 的绝对值:" + Math.abs(Double.MIN_VALUE)); // Double.MIN_VALUE = 4.9E-324 的绝对值:4.9E-324
        System.out.println("Float.MIN_VALUE = " + Float.MIN_VALUE + " 的绝对值:" + Math.abs(Float.MIN_VALUE)); // Float.MIN_VALUE = 1.4E-45 的绝对值:1.4E-45
        System.out.println("Long.MIN_VALUE = " + Long.MIN_VALUE + " 的绝对值:" + Math.abs(Long.MIN_VALUE)); // Long.MIN_VALUE = -9223372036854775808 的绝对值:-9223372036854775808
        System.out.println("Integer.MIN_VALUE = " + Integer.MIN_VALUE + " 的绝对值:" + Math.abs(Integer.MIN_VALUE)); // Integer.MIN_VALUE = -2147483648 的绝对值:-2147483648
        System.out.println("Short.MIN_VALUE = " + Short.MIN_VALUE + " 的绝对值:" + (short)Math.abs(Short.MIN_VALUE)); // Short.MIN_VALUE = -32768 的绝对值:-32768
        System.out.println("Byte.MIN_VALUE = " + Byte.MIN_VALUE + " 的绝对值:" + (byte)Math.abs(Byte.MIN_VALUE)); // Byte.MIN_VALUE = -128 的绝对值:-128


        System.out.println("======== 存在这么一个数:i+1 < i ======");
        System.out.println("Integer.MAX_VALUE = " + Integer.MAX_VALUE + " 加1 :" + (Integer.MAX_VALUE + 1)); // Integer.MAX_VALUE = 2147483647 加1 :-2147483648

        System.out.println("======== 存在这么一个数: i != 0 && i == -i ======");
        System.out.println("Integer.MIN_VALUE = " + Integer.MIN_VALUE + " 负数 :" + (Integer.MIN_VALUE * -1)); // Integer.MIN_VALUE = -2147483648 负数 :-2147483648
    }
}

如果还有其它有意思的数字,欢迎留言!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值