JAVA byte int 0xff 0xffffffff

JAVA byte int 0xff 0xffffffffbyteb=0xff;这样无法通过编译。因为这时的0xff,是作为int类型的,其值为255,二进制记作0000000000000000 0000000011111111,另外,JAVA这里的二进制是用补码的。而byte的范围是-127~128,所以编译器无法通过。如果要想通过编译,应该如下:byteb=(byte)0xff;这时0xff,…

大家好,又见面了,我是你们的朋友全栈君。

byte b = 0xff;

这样无法通过编译。

因为这时的0xff,是作为int类型的,其值为255,

二进制记作0000 0000 0000 0000 0000 0000 1111 1111,另外,JAVA这里的二进制是用补码的。

而byte的范围是-127~128,所以编译器无法通过。

如果要想通过编译,应该如下:

byte b = (byte) 0xff;

这时0xff,是作为byte类型的,其值为-1,

二进制记作1111 1111,是补码形式的。

-1在-127~128之间,所以编译器可以通过。

如果写做如下写法也都是可以的

int c = 0xff;
int d = 0xffffffff;
byte b = 0xffffffff;

0xff实际上是int类型的,值为255,在int的范围内,所以第一行通过编译。

0xffffffff实际上是int类型的,值为-1,

二进制记作1111 1111 1111 1111 1111 1111 1111 1111 补码形式,

-1在int类型范围内,所以第二行通过编译。

同理,第三行的0xffffffff也是是int类型的,值为-1,在byte的 -127~128范围内,通过编译。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145412.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • imx6 添加matrix keypad

    imx6 添加matrix keypadfreescale增加matrixkeypad1.添加设备树,imx6有矩阵键盘功能,支持8*8的键盘kernel_imx/arch/arm/boot/dts/imx6qdl.dtsi/*addedbyyue.zhong*/#include//键值定义的地方,这是一个链接文件,指向kernel_imx/include/dt-bindings/input/i

    2022年6月14日
    73
  • c++构造函数是否可以抛出异常_什么叫抛出异常

    c++构造函数是否可以抛出异常_什么叫抛出异常从语法上来说,构造函数和析构函数都可以抛出异常。但从逻辑上和风险控制上,构造函数和析构函数中尽量不要抛出异常,万不得已,一定要注意防止资源泄露。1.构造函数中抛出异常在C++构造函数中,既需要分配内存,又需要抛出异常时要特别注意防止内存泄露的情况发生。因为在构造函数中抛出异常,在概念上将被视为该对象没有被成功构造,因此当前对象的析构函数就不会被调用。同时,由于构造函数本身也是一个函数,在函数体内抛出

    2022年8月12日
    8
  • http://mail.163.com/help/help_spam_16.htm?ip=118.186.207.7&hostid=smtp5&time=1358341921

    http://mail.163.com/help/help_spam_16.htm?ip=118.186.207.7&hostid=smtp5&time=13583419210INRMumLsiQwT0xVgvYVmNCBWS7mV8LzSeLOZGHzflL3ziBSx+iej3G1syAeYvPZxqagQ0P7mgdX/qgnEWWuIcv4cTR6ZI5QNmqULAGtRkCtCNsphAD7cLBiV7UpV7yvURpKw6H8jHyDDZc8zP5P8QF9abbRoeoTcPcDs/Ij0+JSX9fkdkqCvmUFYzy/GBb+hMWJ

    2022年10月9日
    2
  • 我的学习路径算法

    我的学习路径算法

    2022年1月9日
    37
  • 你真的了解python中的换行以及转义吗?「建议收藏」

    你真的了解python中的换行以及转义吗?「建议收藏」python中的分号在python中默认是以换行来标志一行语句的结束。a="xxxx"print(a)#xxxx这段代码很简单,因为a="xxxx&q

    2022年7月6日
    25
  • nginx负载均衡原理

    nginx负载均衡原理负载均衡在服务端开发中算是一个比较重要的特性。因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理前端,因为Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就可以分发给后台服务端(backendservers,后面简称backend)来做复杂的计算、处理和响应,并且在业务量增加的时候可以方便地扩容后台服务器。负载均衡可以分为硬件负载均衡和软件负载均衡…

    2022年6月24日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号