C ++ - 将int转换为字节并编写相应的测试方法

时间:2014-03-21 14:22:45

标签: c++

我写了一个方法intToBytes()和一个相应的方法来测试这个函数。在VisualStudio-Debugger中,我可以看到值'2C'是向量的最后一个条目。此外,我在测试方法中找到比较两个数组的正确选项似乎有些问题。谢谢你的帮助。

vector<unsigned char> intToBytes(int paramInt){
    vector<unsigned char> arrayOfByte(4);
    for (int i = 0; i < 4; i++){
        arrayOfByte[3 - i] = (paramInt >> (i * 8));
    }
    return arrayOfByte;
}

int intToBytesTest(){
    int test1 = 44;
    vector<unsigned char> test1Vector = intToBytes(test1);
    BYTE exp1[] = {0x2C , 0x00 , 0x00 , 0x00 };
    BYTE act1[] = {test1Vector.at(0), test1Vector.at(1), test1Vector.at(2), test1Vector.at(3)};
    if (exp1 != act1){ 
        return 1;
    }
    return 0;
}

1 个答案:

答案 0 :(得分:3)

您无法使用BYTE比较两个原始==数组。您实际上是在进行比较,看看它们是否是同一个数组,而不是数组是否相同。

相反,您可以使用std::vector,因为它有==的重载,可以比较两个实例,看它们是否相同。