直接常量和按位操作符 --《JAVA编程思想》10

本文介绍了JAVA中直接常量的表示方法,包括二进制、八进制、十进制、十六进制,以及long和float类型的使用规范。同时,详细讲解了按位操作符的使用,如与(&)、或(|)、异或(^)和非(~)等操作符。

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

今天我们来了解JAVA中的直接常量按位操作符

一、直接常量

在编程中,有时需要我们直接告诉编译器生成什么类型的数据,这时候就需要使用直接常量表示。

我们先来看看JAVA中的二进制八进制十进制十六进制如何表示。

二进制:通过toBinaryString()方法,可以将 int、long 类型转换二进制字符串。

八进制:前缀 0 开头,后续通过0~7 的数字表示。

十进制:最常见的类型,0~10 的数字直接表示。

十六进制:前缀 0x(或0X),后面跟随 0~9 的数字 或 小写 a-f(、大写 A-F) 表示。

        //十进制
        int i1 = 56;
        System.out.println("i1==" + Integer.toBinaryString(i1));
        //八进制
        int i2 = 017;
        System.out.println("i2==" + Integer.toBinaryString(i2));
        //十六进制
        int i3 = 0X2F;
        System.out.println("i3==" + Integer.toBinaryString(i3));

在这里插入图片描述
此外,我们在使用 long 和 float 类型的时候,通常需要指定具体类型,long 类型的值加L(不推荐使用小写字母 l ,与数字1太过相近,不利于代码的可读性),float 加类型的值加 F或者 f 。

long 类型不加 L 默认时 int 类型,当位数超过指定长度,编译器会报错; float 类型不加 F(或者 f )默认为 double 类型 ,出现小数点,编译器会报错。

        //正例
        long i1 = 5555;
        float f1 = 3;
        //反例
        long i2 = 5555555555555555L;
        float f2 = 6.2F;

为了养成良好的编码习惯,使用 long 和 float 类型时,最好加上具体后缀,告知编译器具体类型。

二、按位操作符

按位操作符用来操作整数基本数据类型中的单个“比特”(bit),即二进制位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。

操作符名称用途
&两个输出位均为1,则输出1,否则输出0
|两个输出位其中一个为1,则输出1,否则输出0
^异或两个输出位结果相同输出0,否则输出1
~只对一个操作数进行操作,若输入位0,则输出1;输入位为1,则输出0
  1. 与操作符( & )示例
        int a = 12;
        System.out.println("a的二进制==" + Integer.toBinaryString(a));
        int b = 14;
        System.out.println("b的二进制==" + Integer.toBinaryString(b));
        System.out.println(a & b);
        System.out.println("结果的二进制=="+Integer.toBinaryString(a & b));

在这里插入图片描述

  1. 或操作符( | )示例
        int a = 12;
        System.out.println("a的二进制==" + Integer.toBinaryString(a));
        int b = 14;
        System.out.println("b的二进制==" + Integer.toBinaryString(b));
        System.out.println(a | b);
        System.out.println("结果的二进制=="+Integer.toBinaryString(a | b));

在这里插入图片描述

  1. 异或操作符( ^ )示例
        int a = 12;
        System.out.println("a的二进制==" + Integer.toBinaryString(a));
        int b = 14;
        System.out.println("b的二进制==" + Integer.toBinaryString(b));
        System.out.println(a ^ b);
        System.out.println("结果的二进制==" + Integer.toBinaryString(a ^ b));

在这里插入图片描述

  1. 非操作符( ~ )示例
        int a = 12;
        System.out.println("a的二进制==" + Integer.toBinaryString(a));
        System.out.println("结果的二进制==" + Integer.toBinaryString(~a));

在这里插入图片描述
P.S:这里转换出来的二进制位数变多是因为1100在内存中实际存储位数是为 0000 0000 0000 0000 0000 0000 0000 1100。

本次分享至此结束,希望本文对你有所帮助,若能点亮下方的点赞按钮,在下感激不尽,谢谢您的【精神支持】。

若有任何疑问,也欢迎与我交流,若存在不足之处,也欢迎各位指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BaymaxCS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值