Android 中 byte类型数据大于0x7F时的比较
来源:互联网 发布:微信mac版 dmg 编辑:程序博客网 时间:2024/06/06 00:54
Android中 byte数据不能大于0x7F,所以遇到大于0x7F的时候比较麻烦。
我自己就弄个简单的方法,直接用强制转换,比如:
byte a;
a = (byte)0xef;
但是,判断a是否等于0xef时,会出现问题:
if(a == 0xef){
//
}else{
//
}
会进入else里面。
我的解决方法是a先与0xff进行位与(&)然后在判断是否==0xef。
如图:
即第一个(小于0x7f的数据)判断成功
第二个(大于0x7f的数据)判断失败
第三个(大于0x7f且和0xff进行了位与)判断成功
补充:(后来的理解)
在小于0x7f 时,int 型和byte 型 可以相互比较。在大于0x7f 时,则不可以。
如果要比较只能换成同一类型,上述的 c&0xff 后得到的是int型,故可以与0xaf运算。
也可以将0xaf强制转换为byte再运算。
阅读全文
0 0
- Android 中 byte类型数据大于0x7F时的比较
- java中byte类型数据的运算
- Android中如何修改编译的资源ID值(默认值是0x7F...可以随意改成0x02~0x7E)
- android中16进制String类型的而数据与二进制byte类型的数据相互转换,c++中16进制String类型的而数据与二进制byte类型的数据相互转换
- 在Java中byte类型数据在运算的问题
- java中byte char short类型数据的操作说明
- SQLServer中Datetime类型数据的比较
- php中浮点类型数据的比较
- SQLServer中Datetime类型数据的比较
- Java中double类型数据的比较
- vc中把字符串转换成16进制数的函数(如'7f'->0x7f)
- vc中把字符串转换成16进制数的函数(如'7f'->0x7f)
- vc中把字符串转换成16进制数的函数(如'7F'->0x7F)
- BCB中Byte[]类型转换成AnsiSring类型数据的一个函数
- 把System.byte[]类型数据写入Oracle的blob类型字段中
- byte类型数据
- 输入字符的分类和Byte类型数字的比较
- Java中byte基础类型的特殊性
- 给定一个数组,值全是正数,请返回累加和为给定值k的最长子数组长度。
- Eclipse如何修改Web项目的名称
- windows 10 python 2.7和python3.6共存解决方法和pip安装
- python matplotlib库
- hdu 5867 Water problem
- Android 中 byte类型数据大于0x7F时的比较
- invalid header field
- OkHttp源码分析(四)DiskLruCache
- 智能一代云平台(三十八):单元测试推动开发,如何避免服务之间依赖拖了工期
- 关于XES格式对并发事件的表达
- linux日志转储及脚本操作
- Animation动画使用注意点
- 第八届福建省大学生程序设计竞赛-重现赛 A Frog
- Java编程思想之对象导论