java的int和byte类型的转换

例子一:

① byte a=1; //通过

当字面整数常量保存到byte、short、long 或char类型的变量中时,Jdk会执行自动类型转换,概括说就是整型值赋值的时候可以自动转换

② byte b=a+1; //编译报错

1默认是 int 类型,而 a 和 b是 byte类型,在运算的时候 a会自动转换为 int 类型与1相加,而结果会变成 int 类型,这个时候大类型就不能自动转化成小类型,必须显式强制转换  byte b = (byte) (a+1)


例子二:

int x = 266;                                                        int x = 206;   

b =(byte)x ;                                                        b =(byte)x ;

System.out.print(b) //输出 10                            System.out.print(b) //输出 -50

原因:

int 是32位 4个字节 8位1字节

int转换成byte 前面的3个字节 即24位 直接砍掉 就剩最后一位

所以 266 ——(00000000)(00000000)(00000001)(00001010)= 0001010 = 10

        206 ——(00000000)(00000000)(00000001)(11001110)= 11001110= -50

最高位是 0 表示是正数,如果是1表示负数,要先按位取反再加1


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 673评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 常量的概述和使用 A:什么是常量在程序执行的过程中其值不可以发生改变 B:Java中常量的分类字面值常量自定义常量...
    野望君阅读 634评论 0 0
  • 1. 关于诊断X线机准直器的作用,错误的是()。 (6.0 分) A. 显示照射野 B. 显示中心线 C. 屏蔽多...
    我们村我最帅阅读 10,828评论 0 5
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,614评论 4 12