`
only_java
  • 浏览: 112401 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

char,byte,short位移运算时注意事项

    博客分类:
  • j2se
阅读更多

char,byte或者short进行移位处理,那么在移位进行之前,它们会自动转换成一个int。只有右侧的5个低位才会有用。这样可防止我们在一个int数里移动不切实际的位数。若对一个long值进行处理,最后得到的结果也是long。此时只会用到右侧的6个低位,防止移动超过long值里现成的位数

 

 

对char,byte或者short进行移位处理,那么在移位进行之前,它们会自动转换成一个int。

比如 byte bt=128;则在进行位移运算前首先会把bt转换为int类型,即刚开始时:01000000,如果要进行bt<<8运算时,则首先bt会转换为2进制 00000000000000000000000010000000

然后向左移动8位。        结果为 00000000000000001000000000000000值为32768

 

分享到:
评论

相关推荐

    JAVA基础之java的移位运算

    - 当对byte或short类型进行移位操作时,它们会被提升为int类型,因此移位结果可能超出原始类型的范围,需要额外处理。 - 左移可能会导致符号位丢失,尤其是对负数左移过多位时。 - 右移时,如果原始值为负数,符号位...

    JAVA位运算.pdf

    这些类型包括`long`、`int`、`short`、`char`和`byte`。以下是一些主要的位运算符及其作用: - **按位非(NOT)**:`~`,这是一个一元运算符,对操作数的每一位进行取反操作。例如,对于数字42(二进制形式为`...

    java位运算大全.pdf

    此外,无符号右移运算符(&gt;&gt;&gt;)在Java中只适用于int和long类型,而对byte和short类型进行右移时,会自动将操作数扩展为int类型再进行运算。 Java语言还提供了位移赋值运算符,如、&gt;&gt;=和&gt;&gt;&gt;=,这些运算符将位移和赋值...

    Java 基础 byte[]与各种数据类型互相转换的简单示例

    本示例主要关注的是`byte[]`类型与其他基本数据类型(如`long`、`int`、`double`、`float`、`short`、`char`以及`String`)之间的转换。以下是对这些转换方法的详细解释: 1. **`short`到`byte[]`转换**: - `...

    java面试宝典 吐血推荐,很全面

    - **注意事项**: 位移运算符在计算2的幂次方时非常高效。 **9. 请设计一个一百亿的计算器** - **知识点**: 考虑使用`BigInteger`类来进行大数运算。 - **注意事项**: `BigInteger`类提供了对任意精度整数的支持,...

    java面向对象程序设计基础知识总结.pdf

    位移运算要注意,Java中int类型占32位,long占64位,进行移位运算时会根据类型进行模运算。左移运算(value )会丢弃最高位,用0填充最低位,右移运算(value &gt;&gt; num)则保留符号位,高位补相应符号。 三目运算符...

    Java+Android面试题大全

    5. switch语句的使用限制:在Java中,switch语句的表达式(expr1)只能是整数类型(包括int和Integer)或枚举类型,因此byte、short、char类型以及它们的包装类型(Byte、Short、Character)由于可以隐式转换为int,...

    Java最新面试宝典

    ### Java最新面试宝典知识点详解 #### 一、Java基础部分 **1.1 & 和 && 的区别** - **相同点**: `&` 和 `&&` 都可以用作逻辑与运算符,表示逻辑与(AND...- 位移运算比乘法运算更快,特别是在处理大整数时效率更高。

    java经典面试题非看不可

    8. **位移运算效率**: - 计算`2 * 8`的最高效方法是`2 ,利用左移位运算,相当于乘以2的3次方,这是CPU原生支持的位运算,速度快。 9. **`final`关键字**: - 使用`final`修饰变量意味着引用不可变,但引用的...

    较好的java面试题275

    ` 都是有效率的方法,前者利用位移运算,后者则是简单的乘法运算。 10. **请设计一个一百亿的计算器** 要设计一个能处理一百亿数值的计算器,需要注意数据类型的选择,使用 long 或 BigInteger 类型可以存储这种大...

    Java面试题

    - 直接使用`2 或`2 * 8`都是高效的方法,前者利用了位移运算,后者则是简单的乘法。 10. **请设计一个一百亿的计算器** - 设计这样的计算器需要考虑大整数运算,可以使用`BigInteger`类来处理超过int或long范围的...

    java程序员面试宝典电子书.pdf,这是一份不错的文件

    8. **高效计算2的8次方**:在Java中,可以使用位移运算`来快速计算2乘以8,即`2 ,因为左移3位相当于乘以2的3次方,即8。 9. **设计亿级计算器**:设计一个能处理百亿级别的计算器要考虑效率和精度。可以使用大数据...

    java面试题选

    9. **高效计算2乘以8**:最有效率的方法是直接使用`2 ,利用位移运算进行快速计算。 10. **设计大数计算器**:设计一个能处理一百亿级别数字的计算器,需要考虑大数运算,可以使用BigInteger类,它提供了对任意大小...

    java的开发入门书

    整数类型包括byte、short、int和long,它们分别占用1、2、4和8个字节的存储空间。浮点数类型包括float和double,它们分别占用4个和8个字节的存储空间,用于表示实数。字符类型char占用2个字节,用于存储单个字符。...

    java技术面试宝典2020版.doc

    例如,2乘以8可以用2 表示,这比使用乘法更快,因为在计算机底层,位移运算通常比乘法更快。 8. **final关键字的使用**:final修饰变量时,如果是基本类型,变量的值不能改变;如果是引用类型,引用本身不能改变,...

    java和android面试题总结

    - `switch`语句可以作用于`byte`、`short`、`char`、`int`类型及其相应的包装类型`Byte`、`Short`、`Character`、`Integer`,以及枚举类型。 - `switch`不能直接作用于`long`或`String`类型,因为它们不能隐式转换...

    Java课件课堂笔记

    但是,Byte、Short和Char之间不能直接互相转换,它们在计算时通常会先转换为int类型。 3. **变量的作用域**:在Java中,不同类型的变量有不同的作用域。在语句块内部定义的变量仅在该块内有效,无法在外部访问。...

    Java 73道基础面试题.docx

    12. 位运算效率:对于快速计算2的幂次,可以使用位移运算,如2表示2乘以2的3次方,等效于2*2*2。 13. 构造器与重写:构造器不能被重写(override),但可以重载(overload),即在同一个类中创建多个具有不同参数...

    Java面试宝典

    - **适用类型**:`switch`语句支持`byte`、`short`、`char`、`int`及其包装类型以及枚举类型。 - **不适用类型**:`long`和`String`类型不能直接应用于`switch`语句中,因为它们不能被隐式转换为`int`类型。 - **...

Global site tag (gtag.js) - Google Analytics