㈠ 在C++里怎么把char数组转换成byte数组
C++没有byte类型,byte一般都指unsigned char。
如果要把char[]转unsigned char[]的话,只需要把类型强制转换一下就行了
例如:
char*a=newchar[10]();//申请一个char数组
unsignedchar*b=(unsignedchar*)a;//转化
㈡ java中怎么把一个中文字符char转换成byte
1、中文一个字是两个char,即是String类型。
2、String只能转为byte[]数组,方法是调用其getBytes()方法。
㈢ java怎么把char转换成byte数组
1、字节数组转换为字符串
byte[]
byBuffer
=
new
byte[20];
String
strRead
=
new
String(byBuffer);
strRead
=
String.ValueOf(strRead.toCharArray(),
0,
byBuffer.length]);
2、字符串转换成字节数组
byte[]
byBuffer
=
new
byte[200];
String
strInput=abcdefg;
byBuffer=
strInput.getBytes();
注意:如果字符串里面含有中文,要特别注意,在android系统下,默认是UTF8编码,一个中文字符相当于3个字节,只有gb2312下一个中文相当于2字节。这种情况下可采取以下办法:
㈣ 在VC中,如何实现char*转换成byte*,
char *p1;
在运算应用中
(byte *)p1
即可
㈤ Delphi怎么把一个CHAR 转换为 Byte形请高手指点
c语言中没有byte这种类型,这是计算机中存储信息的单位。
char 是字符型
byte 是字节型(0 - 255)
在参与算术运算是char类型会自动转为整型;如字符A会转为对应ASCII码65.
char是用来表示一个字符,而不是一个字,因为一个字要占用两个字节。而存储一个ANSI字符只需一个字节。注意,强调是ANSI字符,而不是Unicode字符。因为Unicode要占用两个字节。
byte类型是最自由的一种。它就占用一个字节,但没有定义这个字节拿来干什么。char定义为一个Unsigned Byte类型。也就是无符号的一个字节。它将一个字节的8位全占用了。可以表示的数据范围是0到255之间。
如果你确定处理的字符串是标准的ANSI字符串,那不必转换也可以直接一个字节一个字节地处理。如果要处理的字符串不定或是统一的Unicode字符串则要进行转换后进行处理。
㈥ 如何:将 char * 字符串转换为 System:Byte 数组
有两张方法:
方法一:
//字符串转byte
string StringMessage = "How Are you?";
Console.WriteLine("{0}", StringMessage);
System.Text.ASCIIEncoding ASCII = new System.Text.ASCIIEncoding();
Byte[] BytesMessage = ASCII.GetBytes(StringMessage);
//byte转字符串
Byte[] BytesMessage;
System.Text.ASCIIEncoding ASCII = new System.Text.ASCIIEncoding();
String StringMessage = ASCII.GetString( BytesMessage );
方法二:
//字符串转UTF-8 byte
string StringMessage = "Hello World How Are you? Pi /u03C0 Yen /uFFE5";
System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
Byte[] BytesMessage = UTF8.GetBytes(StringMessage);
//UTF-8 byte 转字符串
Byte[] BytesMessage;
System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
String StringMessage = UTF8.GetString( BytesMessage );
㈦ char和byte是一个意思
char和byte这两种数据类型容易相互混淆,他们的区别主要如下:
1、数据类型不同
byte是字节数据类型,是有符号型的,可以表示-128—127的数;
char是字符数据类型,是无符号型的,可以表示一个整数,不能表示负数。
用法举例:
chari=85;//U对应ASCII是85
byted3=127;//如果是byted3=128;会报错
byted4=-128;//如果是byted4=-129;会报错
2、占用空间大小和大小范围不同
byte占1个字节;大小范围为-128—127 ;
char占2字节(Unicode码);大小范围是0—65535;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符。
3、另外char可以表示中文字符,byte不可以。用法举例:
chare1='中',e2='国';
bytef=(byte)'中';//必须强制转换否则报错
㈧ 在C++里怎么把char数组转换成byte数组
char和byte都是8位。char默认是signed还是unsigned看编译器,一般是signed也就是有符号char类型,范围为0-127.它的最高位是不用的,为0.
byte范围0-255,。所以char转byte直接强制类型转换就可以,不会丢失数据
㈨ java 中,char 数组转换成 byte数组(急,在线等)
package com.example.lib;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.*;
import java.nio.charset.Charset;
public class MyClass {
public static void main(String[] args) throws IOException {
FileInputStream fs; //定义流对象变量
fs = new FileInputStream("/Users/mac/AndroidStudioProjects/MyApplication/lib/src/main/java/com/example/lib/mytext.txt");
byte[] bytes = new byte[fs.available()]; //定义接收数据的字节数组,并用流对象初始化数组大小
fs.read(bytes); //装载数据
char[] w = getChars(bytes);//将字节数组转化为字符数组,注意数组末尾会有空字符
String s = new String(w); //利用字符串构造函数来构造字符串,
System.out.println("结果为:"+s.trim());输出时,去掉末尾空格字符
}
private static byte[] getBytes (char[] chars) {
Charset cs = Charset.forName ("UTF-8");//设定字符集编码代号
CharBuffer cb = CharBuffer.allocate (chars.length);//按照字符数组长度进行分配空间
cb.put (chars); //装载数据
cb.flip (); //指针复位
//按照编码规则进行编码
ByteBuffer bb = cs.encode (cb);
return bb.array();
}
private static char[] getChars (byte[] bytes) {
Charset cs = Charset.forName ("UTF-8");//指定字符集编码
ByteBuffer bb = ByteBuffer.allocate (bytes.length);
bb.put (bytes);//装载数据
bb.flip ();//调整回指针为0
CharBuffer cb = cs.decode (bb);//按照指定字符集进行解码
return cb.array();//返回字符数组
}
}