我写了一个方法 intToBytes() 和一个相应的方法来测试这个功能。在 VisualStudio-Debugger 中,我可以看到值“2C”是 vector 的最后一个条目。此外,我似乎在找到正确的选项来比较我的测试方法中的两个数组时遇到了一些问题。感谢您的帮助。
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;
}
最佳答案
您不能使用 ==
比较两个原始 BYTE
数组。您实际上是在比较它们是否是同一个数组,而不是数组是否相同。
相反,您可以使用 std::vector
,因为它具有用于比较两个实例以查看它们是否相同的 ==
的重载。
关于C++ - 将 int 转换为 bytes 并编写相应的测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22561441/