Java没有unsigned类型,作者一定很后悔,现在加还来得及。没有unsigned类型,使得java在编解码方面成为残疾。这主要是作者在开始时只是把Java定位为一种脚本语言,要求不是太高。好吧,在Java里把整数分为byte short intlong四种类型,是没有unsigned类型的。那么在处理序列化数据时该怎么办呢?

字面整型常量默认为int型
例如:
long

a =0xA1;    //a为正数
long  a = 0xA1A2; // a为正数
long  a =0xA1A2A3A4;   //a为负数,0xA1A2A3A4自动为一个int值,显然int型最大0x7FFFFFFF,所以a被视为负数。

long  a = 0xA1;    // a为正数
long  a = 0xA1A2; // a为正数
long  a = 0xA1A2A3A4;    // a为负数,0xA1A2A3A4自动为一个int值,显然int型最大0x7FFFFFFF,所以a被视为负数。然而这句的本意是给a赋一个正数值,怎么做呢? -- 给字面常量添加 L 后缀即可。

然而这句的本意是给a赋一个正数值,怎么做呢?-- 给字面常量添加 L 后缀即可。
正确写法为:

long a = 0xA1A2A3A4L;

给字节数据赋值字面常量
byte arr[] = new byte[2];
byte[0] = (byte) 0xA1;   //用byte强转,因为右侧被视为一个int型,其值为正数 > 128,显示byte存不下这个值
byte[1] = (byte) 0xA2;

字节合并成整数
接收到数据 arr[],合成整数: &0xFF变成正的int
long v =  (  (arr[0]& 0xFF ) << 8)  + (arr[1] & 0xFF);

arr[0] & 0xFF 这个表达式的类型为 int

4字节合并

    public static long ToUint4(byte arr[]){return ((long)(arr[0]&0xFF) << 24)+ ((long)(arr[1]&0xFF) << 16)+ ((long)(arr[0]&0xFF) << 8)+ ((long)(arr[0]&0xFF)) ;}

Java - 处理unsigned类型相关推荐

  1. unsigned是java的关键字么_Java 语言没有 unsigned 类型

    跟 C 语言不同,Java 中没有 unsigned 类型,这点可能让很多人都有过困扰. 那如果碰到确实需要用到 unsigned 类型的情况怎么办呢? 通常的办法就是用更大一号的类型来处理,比如: ...

  2. java 整型类型_Java基本类型-整型解读

    java的基本类型包括以下几类: 整型 byte short int long 浮点型 float double 字符型 char 布尔型 boolean 它们都有对应的包装类型(如果没有特殊说明,下 ...

  3. 深度分析Java的枚举类型——枚举的线程安全性及序列化问题

    点击关注,快速进阶高级架构师 作者:Hollis 写在前面:Java SE5提供了一种新的类型-Java的枚举类型,关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为 ...

  4. Android java传递string类型数据给C

    本文接着实现<Android java传递int类型数据给C>的还未实现的方法: public native String sayHelloInC(String s); 先贴一个工具方法, ...

  5. 将java.time.LocalDate转换为java.util.Date类型

    本文翻译自:Convert java.time.LocalDate into java.util.Date type I want to convert java.time.LocalDate int ...

  6. java.lang.date_无法将java.lang.String类型的值转换为必需类型java.util.Date

    from date: to date: Trouver 这是控制器代码部分: @RequestParam(name = "d1", defaultValue = "190 ...

  7. JAVA修饰符类型(public,protected,private,friendly)

    JAVA修饰符类型(public,protected,private,friendly) public的类.类属变量及方法,包内及包外的不论什么类均能够訪问: protected的类.类属变量及方法, ...

  8. Java数据结构类如何使用_Matlab如何使用Java的数据结构类型

    Matlab 2008b才开始引入containers.Map,这是Matlab唯一的数据结构(这里的数据结构是指自带一定逻辑性的数据结构,不包括普通数据类型).如果要有其它,比如Queue.Set等 ...

  9. java int 127_Integer类型中奇怪的127和128

    原标题:Integer类型中奇怪的"127"和"128" 今天给大家带来的是Java中Integer类型的自动装箱 自动装箱:就是Java自动将原始类型值转换成 ...

最新文章

  1. [SimpleOJ238]宝藏探寻
  2. 完美解决tar文件window解压问题
  3. UNIX再学习 -- 静态库与共享库
  4. 19年8月 字母哥 第一章 spring boot 2.x基础及概念入门 这里全部看完了 热部署没出来 第二章在前面2页 用热点公司网不行
  5. 谈谈C语言中的杂项运算符
  6. matlab cd参数,MATLAB变量参数列表​
  7. LeetCode 365. 水壶问题(最大公约数)
  8. scanf()的使用
  9. Ubuntu 中的编程语言(中)
  10. OpenShift 4 - 容器应用备份和恢复
  11. Sequelize-nodejs-8-Transactions
  12. C++基础::运算符重载
  13. AD9833信号波形谐波
  14. Soui Button学习一
  15. Windows应用程序进阶2(非模态对话框 通用对话框)
  16. (三)基于Phyphox的三线摆法测量物体转动惯量
  17. VRRP(虚拟路由冗余技术)
  18. JavaScript+css+html鼠标指针经过某些元素时背景变色
  19. python-多态_new魔法方法_单态模式_连贯操作
  20. SPJ数据库—初识sql语句(02)(注释版)

热门文章

  1. JAVA设计模式什么鬼(状态)——作者:凸凹里歐
  2. 找不到文件direct12.h
  3. 中年人可以学计算机吗,中老年人学计算机与上网的操作系统是windows xp还是window7...
  4. 百度“凤巢”一次事关生死的广告计划
  5. RAC实例重新配置 恢复
  6. 毕业设计-基于微信小程序的大学生心理测试系统
  7. 3DMax 快捷键大全
  8. python2鼠标键盘录制功能以及还原操作功能
  9. word文档合并和查找替换使用通配符
  10. 计算鬼成像学习笔记二:二阶关联函数探究