javaByte注意事项学习资料.doc

上传人:1595****071 文档编号:51480316 上传时间:2022-10-18 格式:DOC 页数:7 大小:123KB
返回 下载 相关 举报
javaByte注意事项学习资料.doc_第1页
第1页 / 共7页
javaByte注意事项学习资料.doc_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《javaByte注意事项学习资料.doc》由会员分享,可在线阅读,更多相关《javaByte注意事项学习资料.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Good is good, but better carries it.精益求精,善益求善。javaByte注意事项-Javabyte操作注意事项(2010-11-1017:19:19)转载标签:杂谈Java对byte的+-*/1|0x01;这个写法里有多重错误,现逐个纠正:1编译器报错,int无法直接自动转化为byte为解决此问题,加强制转化。byteb=(byte)0xf8;byteb2=(byte)(b1)|0x01);2输出为11111101不是我们想要的00111101原因是是有符号右移,当符号位为1时,左侧补的是1而非0。修改为使用无符号右移:byteb=(byte)0xf8;by

2、teb2=(byte)(b1)|0x01);3运行后发现输出依然为11111101原因是byte在运算前先转化为int再行位运算,因此分解后的运算步骤如下:b转化为int11111000转化为11111111111111111111111111111000无符号右移1位01111111111111111111111111111100与0x01按位或01111111111111111111111111111101强制转化回byte11111101解决方案,在右移运算前先位与0xffbyteb=(byte)0xf8;byteb2=(byte)(b&0xff)1)|0x01);/注意必须加括号,因为

3、的优先级高于&4运行后发现输出为我们想要的结果01111101。运算步骤分解如下:b转化为int11111000转化为11111111111111111111111111111000和0xff进行&操作00000000000000000000000011111000无符号右移1位00000000000000000000000001111100与0x01按位或00000000000000000000000001111101强制转化回byte011111015关于System.out.println();byteb=(byte)0xf8;System.out.println(b);-最终输出为-8

4、运算步骤为:b转化为int11111000转化为11111111111111111111111111111000取符号位-1111111111111111111111111111000取返+1(因为是按补码运算)-0000000000000000000000000001000输出-8最终结论:1区分使用和2在操作前要首先&0xff3注意符号优先级,正确使用括号。4需要强烈注意的一点是&的优先级小于+.因此a=b&0xff+2000的结果可能不是你想要的附:打印byte,int每个bit值的函数。publicstaticvoidprintByte(byteb)for(inti=7;i=0;i-)intshiftleft=(bi)&0x01;System.out.print(shiftleft);System.out.println();publicstaticvoidprintInt(intb)for(inti=31;i=0;i-)intshiftleft=(bi)&0x01;System.out.print(shiftleft);System.out.println();-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁