在C++里怎么把char数组转换成byte数组

 我来答
栖凤婷
2015-02-10 · TA获得超过551个赞
知道小有建树答主
回答量:468
采纳率:0%
帮助的人:370万
展开全部
char和byte都是8位。char默认是signed还是unsigned看编译器,一般是signed也就是有符号char类型,范围为0-127.它的最高位是不用的,为0.
byte范围0-255,。所以char转byte直接强制类型转换就可以,不会丢失数据
儒雅的春男
2015-02-10 · TA获得超过685个赞
知道小有建树答主
回答量:1181
采纳率:66%
帮助的人:469万
展开全部
char ch[] = {a,b,c};

void Func (byte a);

int main()
{
Func((byte)ch);

}

意思就是你用的时候直接转
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BlueWanderer
2015-02-10 · TA获得超过9209个赞
知道大有可为答主
回答量:5673
采纳率:83%
帮助的人:2001万
展开全部
C++里的char本来就是Java里的byte
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iu...m@sohu.com
推荐于2016-05-19 · 超过20用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:13.9万
展开全部
C++标准中,wchar_t是宽字符类型,每个wchar_t类型占2个字节,16位宽。汉字的表示就要用到wchar_t 。char,我们都知道,占一个字节,8位宽。其实知道了这个以后,要在wchar_t 和 char两种类型之间转换就不难实现了。

wchar_t 转换为char 的代码如下:

有如下的wchar_t和char变量

wchar_t w_cn = '中';
char c_cn[2] = {'0'} ;

char *C2W(wchar_t w_cn , char c_cn[2])

{

//following code convert wchar to char
c_cn[0] = w_cn >> 8 ;
c_cn[1] = w_cn ;
c_cn[2] = '\0';

return c_cn ;

}

其中需要注意的是一个16位的wchar_t需要用两个8位的char来存储之。我们可以发现另外一个问题,wchar_t的高位字节应该存储在char数组的低位字节。(这里没有仔细研究了,觉得怪怪的)。

这是完成了wchar_t到char的转化
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式