Android——验证十六进制字符串奇偶性

这两天在忙,串口通信的项目
之前的项目用的是和校验

所以这个项目参考了上个项目的通信验证方法

然后昨天尴尬的事情发生了,获得串口发来的数据之后,
使用方法

	Integer.parseInt(s,16)

一直报错,错误信息如下:

java.lang.NumberFormatException: For input string: “B0000131313661”

我蒙了啊,之前使用没有问题啊,

后来查资料也查不到

自己想吧,突然想到可能是因为 十六进制字符串过长的问题,int有最大长度

int在java中是4个字节也就是8位十六进制数,最大0x7FFFFFFF

23333,我竟然要用integer解析7字节的数字,那不是想多了,int哪有这大容量啊

之前串口通信都是data部分数据3字节就搞定了,难怪之前的没有出错。

哎。另寻他法吧,后来想是不是检测后5位的和校验,试了试可以是可以,问题是没这么做的啊。

今天早晨,突然想到是否可以使用和校验的方式进行校验,于是就来到了今天的主题。

方法如下

	    /**
	     * 计算十六进制字符串的奇偶性
	     *
	     * @param hexString 十六进制字符串
	     * @return 奇 返回1 ;偶 返回0
	     */
	    public static int hexStringCheck(@NonNull String hexString) {
	        // 新建要返回的奇偶值
	        int check_result = 0;
	       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值