dyte转换成char类型的问题!

来源:百度知道 编辑:UC知道 时间:2024/06/06 17:43:52
dyte转换成char类型的问题!

因为byte是一个有符号的类型,所以在将byte数值-1转换成char时,会发生符号扩展。作为结果的char数值的16个位就都被置位了,因此它等于216-1,即65535。从char到int的转型也是一个拓宽原始类型转换,所以这条规则告诉我们,它将执行零扩展而不是符号扩展。作为结果的int数值也就成了65535,这正是程序打印出的结果。

这里的置位是什么意思啊?
216-1是什么来的啊?
为什么216-1就等于65535了?
零扩展是不是就是正数扩展的意思啊?
看来我真不适合做编程,连讲解都看不懂
还得需要别人帮忙讲解讲解中的讲解

因为byte是一个有符号的类型,所以在将byte数值-1转换成char时,会发生符号扩展。作为结果的char数值的16个位就都被置位了,因此它等于216-1,即65535。从char到int的转型也是一个拓宽原始类型转换,所以这条规则告诉我们,它将执行零扩展而不是符号扩展。作为结果的int数值也就成了65535,这正是程序打印出的结果。

这里是垃圾来的,不用看了,错误很多

216-1 ,估计是2的16次方,但char只是8位的。