矢量或数组值插入

vector or array value insertion

我有一个变量 long long int alpha; 这个alpha基本上是8个字节
但我希望字节大小可以通过函数的输入动态决定。
这样它就可以插入到 char* 数组中。
如果有函数

int putInput(int sizeOfAlpha){
    long long int alpha;
    char* beta = (char*)malloc(128);
    for(int i = 0 ; i < 128 ; i++){
        ... alpha calculation ...
        beta[i*sizeOfAlpha] = alpha; // This is also wrong
    }
}


然后 alpha 的大小必须修改 sizeOfAlpha
例如,如果 sizeOfAlpha 是十进制的 2
如果 alpha 是十六进制的 0x00 00 00 00 00 00 04 20
如果 i0
, 那么 beta[0] 应该是 04 并且 beta[1] 应该是十六进制的 20

如果 alpha 是十六进制的 0x00 00 00 00 00 00 42 AB
如果 i1
, 那么 beta[2] 应该是 42beta[3] 应该是十六进制的 AB

谁能帮我解决这个问题?


假设 alpha 是无符号的:

std::vector<std::uint8_t> vec(8);

for(std::size_t j = (i + 1u) * sizeOfAlpha - 1u; sizeOfAlpha; --j, --sizeOfAlpha) {
    vec[j] = alpha & 0xff;
    alpha >>= 8;
}

Live on Coliru