将char []数组转换为byte [],反之亦然?C++

13 c++ char

将字符数组转换为字节的最佳方法是什么,反之亦然?

解:

void CharToByte(char* chars, byte* bytes, unsigned int count){
    for(unsigned int i = 0; i < count; i++)
        bytes[i] = (byte)chars[i];
}

void ByteToChar(byte* bytes, char* chars, unsigned int count){
    for(unsigned int i = 0; i < count; i++)
         chars[i] = (char)bytes[i];
}
Run Code Online (Sandbox Code Playgroud)

Jar*_*Par 13

char类型是ANSI标准保证大小的少数几种类型之一,大小为1字节.据我所知,C不直接定义类型字节.但是,如果一个名为byte的类型实际上不是一个字节大小,那就简直就是疯了.因此,简单的演员应该可以做到这一点.

  • typedef unsigned char byte; (2认同)

Özg*_*gür 7

C++中没有字节类型,根据标准:

编辑:

1.7:

一个字节至少足以包含基本执行字符集的任何成员,并且由连续的位序列组成,其数量是实现定义的.

5.3.3:

sizeof(char),sizeof(signed char)和sizeof(unsigned char)是1; sizeof应用于任何其他基本类型(3.9.1)的结果是实现定义的.

  • 实际上,我相信char被定义为正好1个字节(但至少8位).至少,sizeof(char)定义为1. (6认同)