java中int如何转换byte
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中int如何转换byte相关的知识,希望对你有一定的参考价值。
int z=257;
byte x=(byte)z;
为什么x等于1
希望能帮我详细解答下、
byte 占1个字节,只能截取后 8位,也就是 00000001.
二进制的 0000001 就是 十进制的 1. 参考技术B 没错啊!就应该这样啊!希望采纳谢谢合作!
public class test
public static void main(String[] args)
int a=124;
byte b=(byte) a;
System.out.println(b);
你试下没错啊! 参考技术C BYTE B=(byte)(0XFF & int 数据);
如果数据比较大用左右移来 转就可以了
java中如何让byte[]与string类型转换后,保持不变
在android中我从网络(通过图片网址)上获得几张图片后,我想进入下一个activity时,把这几张图片传过去,可是我想以列表list传过去,可是android的activity中intent中只能传arrayList<string>类型,我想将得到的byte【】转换成string后传过去,但到那边不可以用了。public class AnroidTestActivity extends Activity
private EditText imagePathText;
private static final String TAG="DataActivity";
private ImageView imageView;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imagePathText = (EditText) findViewById(R.id.editText1);
imageView=(ImageView)findViewById(R.id.imageView1);
//获取我的宝马车图片
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
String path = imagePathText.getText().toString();
try
byte[] data=NetTool.getImage(path);
System.out.println(data.length);
Bitmap bm=BitmapFactory.decodeByteArray(data, 0, data.length);
imageView.setImageBitmap(bm);
String string=bytesToString(data);
List<String>list=new ArrayList<String>();
list.add(string);
System.out.println("转换后得到的数据:"+list.get(0));
System.out.println("转换后得到的数据:"+list.get(0).length());
Intent intent=new Intent();
intent.putStringArrayListExtra("list", (ArrayList<String>) list);
intent.setClass(AnroidTestActivity.this,TestIntent.class);
startActivity(intent);
catch (Exception e)
Log.i(TAG, e.toString());
Toast.makeText(AnroidTestActivity.this, "获得图片失败", 1).show();
);
// 获取网页源代码
//将byte【】类型转换成string类型
public static String bytesToString(byte[] b)
StringBuffer result = new StringBuffer("");
int length = b.length;
for (int i = 0; i < length; i++)
result.append((char)(b[i] & 0xff));
return result.toString();
public class TestIntent extends Activity
private ImageView imageView;
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
imageView=(ImageView)findViewById(R.id.test_imageView1);
Intent intent=getIntent();
List<String> list=new ArrayList<String>();
list=(ArrayList<String>)intent.getStringArrayListExtra("list");
System.out.println("转换后得到的数据:"+list.get(0));
System.out.println("转换后得到的数据:"+list.get(0).length());
byte[]data= list.get(0).getBytes();
System.out.println(data.length);
Bitmap bm=BitmapFactory.decodeByteArray(data, 0, data.length);
imageView.setImageBitmap(bm);
/** * 将String转为byte数组 */
// public static byte[] stringToBytes(String s, int length)
// while (s.getBytes
//
// ().length < length)
// s += "";
//
// return s.getBytes();
//
怎么用啊
追答编码就是
byte[] bs = ...;
BASE64Encoder enc = new BASE64Encoder();
String s = enc.encodeBuffer(bs);
解码就是
String s = ...;
BASE64Decoder dec = new BASE64Decoder();
byte[] newbs = dec.decodeBuffer(s);
不过android下有没有这两个包我不知道,但是Base64的编码解码器源码网上不少,也不是很长,自己加也可以。
byte[]转换String时使用举例
byte[] bytes = new byte[](byte) 0x03,(byte) 0x04,;
String targetStr = new String(bytes, "UTF-8")
其中"UTF-8"是转码参数,不写的话会按系统默认转码,这就说明byte[]转换String时,
出现特殊字符,即半角英文 数字 半角符号以外的特殊字符,如汉字 特殊符号等时,
如果编码设定不对的话,二进制编码将无法保持一致。
代码中的方法public static String bytesToString(byte[] b) 应该一样存在这个问题。追问
那应该如何通过intent的来传递图片呢?如果是一张图片可以用byte【】传,可我一次传几张怎么做呀?
追答你的问题我不是很清楚,你的意思是一次选取多个图形文件传输么?
如果是这个意思的话,有两种办法:
第一种,以单独传送图片的机制 循环发送。
第二种,传送时每个文件中间加特殊分割字段,类似于大型机数据的“数据头”。这时需要接受方有一样的解析方式,按照数据头分割文件。
以上是关于java中int如何转换byte的主要内容,如果未能解决你的问题,请参考以下文章