CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

如何把一个无符号整形数复制到一个四字节的byte数组中去?

楼主younet(fly)2003-09-01 10:51:30 在 Java / J2SE / 基础类 提问

如何把一个无符号整形数复制到一个四字节的byte数组中去?  
  比如把无符号整型数int   278   放到byte[4]   b中去   ,怎么做?  
  int   a   =   278;  
  byte[]   b   =   new   byte[4];  
  问题点数:0、回复次数:7Top

1 楼phantomhu(风水)回复于 2003-09-01 11:01:18 得分 0

你的意思是让   字节数组中的每个值都等于278还是别的什么意思  
  如果是让字节数组中的每个值都等于278   可以用256-278   在赋值Top

2 楼jimgreen(可可怜)回复于 2003-09-01 11:01:25 得分 0

int   a=278;  
  byte[]   b=new   byte[4];  
  b=(Integer.toBinaryString(a)).getBytes();Top

3 楼younet(fly)回复于 2003-09-01 11:13:24 得分 0

to     jimgreen(可可怜)   :  
  返回的b变成了byte[9],超过了四个字节,这是怎么回事?  
  Top

4 楼jkit(不再灌水)回复于 2003-09-01 11:56:46 得分 0

我知道你的意思了。  
  方法一:  
  1:String   str   =   Integer.toBinaryString(a)得到一个由1,0组成的字符串  
  2:if   (str.length()   <   32)   在str前面补(32-str.length())个0,得到长度是32的由1,0组成的字符串  
  3:每8位一组,substring成4段  
  4:每段转化成一个整数放到byte[]里面。  
  方法二:  
  就是把整数手工转化成256进制的数,然后放入数组,数组每个元素保存一位。  
  int   n   =   278;  
  byte[]   b   =   new   byte[4];  
  for   (int   i   =   0;   i   <   4;   i++)   {  
          b[i]   =   (byte)   (n   %   256);  
          n   /=   256;  
  }Top

5 楼cbhyk()回复于 2003-09-01 12:07:35 得分 0

如果是通过IO中读写,用DataInputStream和DataOutputStream:  
  int   value   =   ...  
  OutputStream   out   =   ...  
  DataOutputStream   dos   =   new   DataOutputStream(out);  
  dos.writeInt(value);  
   
  InputStream   in   =   ...  
  DataInputStream   dis   =   new   DataInputStream(in);  
  int   value   =   dis.readInt();  
  Top

6 楼buzhiming99(不知名)回复于 2003-09-02 16:28:01 得分 0

public   class   Converter   {  
   
  public   static   byte[]   toByteArray(int   number)  
  {  
  int   temp   =   number;  
  byte[]   b=new   byte[4];  
  for   (int   i   =   b.length   -   1;   i   >   -1;   i--)  
  {  
  b[i]   =   new   Integer(temp   &   0xff).byteValue();  
  temp   =   temp   >>   8;  
  }  
  return   b;  
  }  
   
  public   static   int   toInteger(byte[]   b)  
  {  
  int   s   =   0;  
  for   (int   i   =   0;   i   <   3;   i++)  
  {  
  if   (b[i]   >=   0)  
  s   =   s   +   b[i];  
  else  
  s   =   s   +   256   +   b[i];  
  s   =   s   *   256;  
  }  
  if   (b[3]   >=   0)  
  s   =   s   +   b[3];  
  else  
  s   =   s   +   256   +   b[3];  
  return   s;  
  }  
   
  // 字符到字节转换  
  public   static   byte[]   CharToByte(char   ch){  
  int   temp=(int)ch;  
      byte[]   b=new   byte[2];  
      for   (int   i=b.length-1;i>-1;i--){  
  b[i]   =   new   Integer(temp&0xff).byteValue();             //将最高位保存在最低位  
  temp   =   temp   >>   8;               //向右移8位  
      }  
      return   b;  
  }  
   
  // 字节到字符转换  
  public   static   char   ByteToChar(byte[]   b){  
      int   s=0;  
      if(b[0]>=0)  
  s+=b[0];  
      else  
  s+=256+b[0];  
      s*=256;  
      if(b[1]>=0)  
  s+=b[1];  
      else  
  s+=256+b[1];  
      char   ch=(char)s;  
      return   ch;  
  }  
  }  
  Top

7 楼kypfos(不在寻梦)回复于 2003-11-27 17:52:20 得分 0

markTop

相关问题

  • 求教高手无符号整形数组递减排序,什么算法最快?谢谢!
  • 谁知道怎么把无符号整型数组转为无符号整型数据?
  • 如何动态的分配一个二维无符号型的数组?急!
  • edit控件中如何设置它的value类型为无符号整形(unsigned int),calsswizard中没有???
  • vb中如何将long型溢出后的负整形还原成无符号double型?
  • byte数组
  • 关于byte数组
  • 如何将32位的无符号整数uint32 转换为byte[4] 仍然32位
  • java 的无符号整型
  • 怎样从一个文本文件中读取一个整形数组和写入一个整形数组?

关键词

  • 无符号
  • byte
  • 意思
  • temp
  • ch
  • integer
  • elses
  • public static
  • char

得分解答快速导航

  • 帖主:younet

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo