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

标签 c++

我写了一个方法 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/

相关文章:

java - 是否可以使C/C++平台无关

c++ - 从 WebView QML 元素访问 QWebPage 对象

c++ - 如何在 C++ 中检查邮件服务器(SSL、SMTP 端口 465)的状态

c++ - 如何获取可靠的 QGLWidget 快照

c++ - ‘<’ token 之前的预期初始值设定项

c++ - 模板类中的模板

c++ - 有什么方法可以缩短 C++ 中的 String 类型?

c++ - 嵌套开关替代

c++ - cin.get 的问题

c++ - 从方法堆栈编译中按值返回实例