面试题,关于int类型转byte类型结果溢出

 1 package com.atguigu.chapter03
 2 /*
 3 byte:-128~127
 4 128 : Int类型,占4个字节,32位
 5 计算机中的整型数据都以补码的形式存储,正数的补码是其本身,负数的补码除符号位外取反+1
 6 负数补码求原码,符号位为1不变,其余取反+1
 7 128原码:0000 0000 0000 0000 0000 0000 1000 0000
 8 128补码:0000 0000 0000 0000 0000 0000 1000 0000
 9 
10 截取补码最后一个字节:Byte
11 得到结果的新补码:1000 0000 表示最大的负数为-128
12 所以128结果溢出得-128
13 那么可以推出:如果溢出为130,那么得到结果为-126
14  */
15 object Problem_DataTypeConversion {
16   def main(args: Array[String]): Unit = {
17     val n:Int =130
18     val b:Byte=n.toByte
19     println(b)
20   }
21 }

 

posted @ 2021-12-30 21:30  靠谱杨  阅读(92)  评论(0编辑  收藏  举报