社区
Java SE
帖子详情
关于类型转换的问题
zhanganow
2003-08-21 10:37:57
ByteBuffer buffer = ByteBuffer.allocate(41); //41为自定义的类的大小
buffer.put(buff,0,41); //buff 为我得到的数据包
现在我该如何将buffer还原为我定义的类啊!
既可以实现 buffer.get(MyDefineClass,41);
...全文
26
25
打赏
收藏
关于类型转换的问题
ByteBuffer buffer = ByteBuffer.allocate(41); //41为自定义的类的大小 buffer.put(buff,0,41); //buff 为我得到的数据包 现在我该如何将buffer还原为我定义的类啊! 既可以实现 buffer.get(MyDefineClass,41);
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhanganow
2003-08-22
打赏
举报
回复
但确实是一个结构体啊!
是这样的情况:
受到服务器中受到数据包,数据包是许多的结构体(用vc写的struct )!保存到ByteBuffer 中!
我在取出41个byte,一个结构体的大小,结果就出现上面的问题了!
cbhyk
2003-08-22
打赏
举报
回复
这说明dat中取到的数据不是一个对象
zhanganow
2003-08-22
打赏
举报
回复
错误为java.io.StreamCorruptedException: invalid stream header
zhanganow
2003-08-22
打赏
举报
回复
TO :cbhyk()
ObjectInputStream ois = new ObjectInputStream(bis);
这句话跳出一个异常啊!
怎么回事啊!
谢谢啊
cbhyk
2003-08-22
打赏
举报
回复
是不是这个意思:
ByteBuffer buffer = ...
...
byte[] dat = buffer.getBytes(0, 41);
ByteArrayInputStream bis = new ByteArrayInputStream(dat);
ObjectInputStream ois = new ObjectInputStream(bis);
MyDefineClass obj = (MyDefineClass) ois.readObject();
zhanganow
2003-08-22
打赏
举报
回复
我的问题很急啊!!!!!
怎么没有人理我啊!
5555555555555555555555555555555555555
cbhyk
2003-08-22
打赏
举报
回复
我是重庆的,上不了QQ
zhanganow
2003-08-22
打赏
举报
回复
多些,你是什么地方的啊?
我是杭州的!愿与你交个朋友!我的QQ:26065534
cbhyk
2003-08-22
打赏
举报
回复
如果是用于表示,-127~128和0~255没什么区别,都是0x00~0xff
如果用于计算和显示,把它和0xff相与就成了整数0~255
zhanganow
2003-08-22
打赏
举报
回复
TO cbhyk:
byte就是8位,但它表示-127----128 啊。
我要表示为0---255
谢谢你的指教
能把你的联系方式告诉我吧!我感觉你好厉害啊?
cbhyk
2003-08-22
打赏
举报
回复
byte就是8位
zhanganow
2003-08-22
打赏
举报
回复
再问cbhyk
我在VC中有一个unsigned byte 来放一个0~~255的数字
现在在java中有数据类型来放0~255的数呢?要求是一个字节啊!就是8位啊!
不能有short int 或long
zhanganow
2003-08-22
打赏
举报
回复
谢谢!
cbhyk
2003-08-22
打赏
举报
回复
Java对象和vc的struct的二进制结构是完全不一样的,不可能直接转换成Java对象,只用Java重新实现该struct。如:
在vc中:
struct data_struct
{
long data1;
char data2;
...
};
在Java中
public class DataStruct
{
int data1;
byte data2;
...
public DataStruct(byte[] data)
{
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(data));
data1 = dis.readInt();
data2 = dis.readByte();
...
}
}
zhanganow
2003-08-21
打赏
举报
回复
兄弟们,好象都不行啊!
我的意思是
ByteBuffer buffer = ByteBuffer.allocate(41); //41为自定义的类的大小
buffer.put(buff,0,41); //buff 为我得到的数据包
现在我该如何将buffer还原为我定义的类啊!
既MyDefineClass MyClass = new MyDefineClass();
如何将buffer中的内容给MyClass
谢谢楼上的兄弟们个的建议!
jyn01
2003-08-21
打赏
举报
回复
用强制类型转换因该没有问题吧。
huancaimihai
2003-08-21
打赏
举报
回复
直接向上转型就可以了
楼上说的都对
whyxx
2003-08-21
打赏
举报
回复
直接用你定义的类强制转换就可以了
(Mybuffer)buffer.get(MyDefineClass,41);
TomClus8888
2003-08-21
打赏
举报
回复
如果你获得的数据包本身就是MyDefineClass强制得到的BYTE数据包,那么楼上的办法是一定可行的。或者说存在类的继承关系时候,也可以,不过顺序是有要求的。
topbit
2003-08-21
打赏
举报
回复
是要实现
Class buffer.getClass(long from, long offset)
吗?
加载更多回复(5)
青少儿编程NOIP信息学奥赛通关必备-C++语法专题-数据
类型转换
1、本课程为零基础C++语法专题课,是青少儿参加信息学奥赛NOIP通关必备-语法专题课;2、本课程每节课均配有练习题以及真题,以锻炼孩子的解题能力;3、本课程是基于小学生的认知发展水平开发的,运用孩子生活中常见的例子来阐述编程知识,让孩子听得懂学得会;4、学完本课程后,孩子可以自主编程,解决竞赛中,生活实际
问题
,5、拓展孩子计算思维,应对人工智能时代的挑战。6、本课程介绍的是数据
类型转换
的知识
C语言
类型转换
-自动
类型转换
、强制
类型转换
、指针
类型转换
数据
类型转换
就是将数据(变量、数值、表达式的结果等)从一种
类型转换
为另一种类型。 自动
类型转换
自动
类型转换
就是编译器默默地、隐式地、偷偷地进行的数据
类型转换
,这种转换不需要程序员干预,会自动发生。 将一种类型的数据赋值给另外一种类型的变量时就会发生自动
类型转换
,例如: float f = 100; 100 是 int 类型的数据,需要先转换为 float 类型才能赋值给变量 f。再如: int n = f; f 是 float 类型的数据,需要先转换为 int 类型才能赋值给变量 n。 在赋值运算中,
C语言中关于强制
类型转换
问题
一、C在以下四种情况下会进行隐式转换 1.算术运算式中,低类型能够转换为高类型。 a.若两种类型的字节数不同,转换成字节数高的类型 b.若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型 2.赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给他。 如果右边量的精度较大,将丢失一部分数据,这样会降低精度,丢失的部分按四...
C语言的数据的强制
类型转换
定义:强制
类型转换
是把变量从一种
类型转换
为另一种数据类型。 强制
类型转换
算是C语言中常见常考的一项内容,如对于类型处理不好,将会产生错误结果。对于某些类型的转换编译器可隐式地自动进行,不需人工干预,称这种转换为自动
类型转换
;而有些
类型转换
需要编程者显式指定,通常,把这种
类型转换
称为强制
类型转换
计算机硬件进行算术操作时,要求各操作数的类型具有相同的大小(存储位数)及存储方式。 ...
【Java】强制
类型转换
文章目录1. 基本概念2. 应用场景3. 使用风险4. 使用规则5. 训练 1. 基本概念 强制
类型转换
,可以理解为自动
类型转换
的逆过程。是将大容量的数据
类型转换
为小容量的数据类型。 使用时,前面要加上强制
类型转换
符号()。 2. 应用场景 需要将数据从高精度数据
类型转换
为低精度数据类型。(即高精度类型的数据不能直接赋值给低精度数据) 【注】Java中数据类型的精度从低到高的顺序为: byte short int long float double 3. 使用风险 程序中使用强制
类型转换
,可能面临以下2
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章