矢量或数组值插入

时间:2015-08-14 08:34:34

标签: c++ arrays bit-manipulation

我有一个变量 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
如果alpha0x00 00 00 00 00 00 04 20的十六进制,
如果i0, 然后beta[0]应为04beta[1]应为20十六进制

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

任何人都可以帮我吗?


1 个答案:

答案 0 :(得分:1)

假设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