《Java puzzlers》里关于 sign extension 的示例
本文介绍了《Java puzzlers》里关于 sign extension 的示例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
原文:
If you are converting from a byte value b to a char and you don’t want sign
extension, you must use a bit mask to suppress it. This is a common idiom, so no
comment is necessary:
char c = (char) (b & 0xff);
没有get到 sign extension的含义!以及为什么这么做就没有sign extension
解决方案
首先char是16位 byte是8位 byte有负数形式 char没有 如果直接做移位 负数的byte会直接根据首位的符号位1直接扩展 变成111111111xxxxxx形式 而做位与则不会出现这个问题
这篇关于《Java puzzlers》里关于 sign extension 的示例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文