大家帮忙看一下这段数据库存储的转换代码是什么意思?

zcsnet 2004-11-21 08:45:38
哪位高手帮忙解释一下这段代码的意思啊?我看不懂方法体里的转换含义...

-------------------------------------------------
这是一段书上的例子:
因为J2ME数据库类RecordStore所提供的写入方法,只提供写入byte数组的服务,因此当我们写入一般非byte的数据类型时就比较麻烦,我们心须撰写一些工具具程序做额外处理
--------------------------------------------------------
//把整数化成byte数组存入
public static int writeInt2RS(RecordStore rs,int data)
{
byte []tmp = new byte[4] ;
tmp[0] = (byte)(0xff&( data >> 24)) ;
tmp[1] = (byte)(0xff&( data >> 16)) ;
tmp[2] = (byte)(0xff&( data >> 8)) ;
tmp[3] = (byte)(0xff&( data >> 0)) ;
try
{
return rs.addRecord(tmp,0,tmp.length) ;
}catch(Exception e)
{
}
return -1 ;
}
//将byte数组取出之后化成整数
public static int readInt4RS(RecordStore rs,int recordid)
{
byte []tmp = new byte[4] ;
try
{
tmp = rs.getRecord(recordid) ;
}catch(Exception e)
{
}
int result = (tmp[0]&0x0000ff) ;
result = (result << 8) + (tmp[1]&0x000000ff) ;
result = (result << 8) + (tmp[2]&0x000000ff) ;
result = (result << 8) + (tmp[3]&0x000000ff) ;
return result ;
}
--------------------------------
问题::上面方法体里的又是位运算,又是与运算的,怎样实行转换的啊,是什么意思啊?那样就可以转换了吗?高手 帮 忙解释一下 啊,,

...全文
106 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
batfree 2004-11-23
  • 打赏
  • 举报
回复
就是,楼上说的对。
flyingghost 2004-11-23
  • 打赏
  • 举报
回复
//把整数化成byte数组存入
//将byte数组取出之后化成整数

这不是已经说明白了吗?

其实没必要这么繁。直接作为字节流来读,用readInt、writeInt等函数就好啊。
x0y1z2 2004-11-23
  • 打赏
  • 举报
回复
位移,向右移24位,比如:
0100 0000 0000 0000>>2 = 0001 0000 0000 0000 0000
zcsnet 2004-11-21
  • 打赏
  • 举报
回复
">>24"具体是什么意思啊?
Ennis_wan 2004-11-21
  • 打赏
  • 举报
回复
1 int = 32bit = 4byte
tmp[0] = (byte)(0xff&( data >> 24)) ;取出第一个字节送到tmp[0]里
tmp[1] = (byte)(0xff&( data >> 16)) ;取出第二个字节送到tmp[1]里
tmp[2] = (byte)(0xff&( data >> 8)) ;取出第三个字节送到tmp[2]里
tmp[3] = (byte)(0xff&( data >> 0)) ;取出第四个字节送到tmp[3]里

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧