草庐IT

Unsigned

全部标签

c++ - 使用 recv() 和 vector<unsigned char> 的更优雅的方式

到目前为止,我有这个代码示例:...intnbytes=0;vectorbuffer;buffer.resize(5000);nbytes=recv(socket,&buffer[0],buffer.size(),0);//sinceIwanttousebuffer.size()toknowdatalengthinbufferIdo...buffer.resize(nbytes);是否有另一种方法,在不使用resize()两次的情况下知道缓冲区中的数据长度?因为不可能将数据接收到未调整为适当大小的vector中。根据C++STL文档,我认为reserve()方法不进行分配。还有一个问题

c++ - 使用 recv() 和 vector<unsigned char> 的更优雅的方式

到目前为止,我有这个代码示例:...intnbytes=0;vectorbuffer;buffer.resize(5000);nbytes=recv(socket,&buffer[0],buffer.size(),0);//sinceIwanttousebuffer.size()toknowdatalengthinbufferIdo...buffer.resize(nbytes);是否有另一种方法,在不使用resize()两次的情况下知道缓冲区中的数据长度?因为不可能将数据接收到未调整为适当大小的vector中。根据C++STL文档,我认为reserve()方法不进行分配。还有一个问题

C# 相当于 C++ 中的 64 位 unsigned long long

我正在构建一个DLL,它将由C++使用COM使用。请让我知道C++64位unsignedlonglong的C#等价物是什么。在C#中会是ulong类型吗?请确认。谢谢,加根 最佳答案 也许这会对你有所帮助:ulong(64位无符号整数)double(64位float)。 关于C#相当于C++中的64位unsignedlonglong,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

C# 相当于 C++ 中的 64 位 unsigned long long

我正在构建一个DLL,它将由C++使用COM使用。请让我知道C++64位unsignedlonglong的C#等价物是什么。在C#中会是ulong类型吗?请确认。谢谢,加根 最佳答案 也许这会对你有所帮助:ulong(64位无符号整数)double(64位float)。 关于C#相当于C++中的64位unsignedlonglong,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

c++ - std::在 std::string 和 std::vector<unsigned char> 之间移动

我正在使用2个库。一进一退std::strings而其他使用std::vector秒。如果我能从std::string中窃取底层数组就好了。和std::vector并且能够将它们相互移动而无需过度复制。ATM我使用类似的东西:constunsignedchar*raw_memory=reinterpret_cast(string_value.c_str()),std::vector(raw_memory,raw_memory+string_value.size();反之亦然:std::string(reinterpret_cast(&vector_value[0]),vector_va

c++ - std::在 std::string 和 std::vector<unsigned char> 之间移动

我正在使用2个库。一进一退std::strings而其他使用std::vector秒。如果我能从std::string中窃取底层数组就好了。和std::vector并且能够将它们相互移动而无需过度复制。ATM我使用类似的东西:constunsignedchar*raw_memory=reinterpret_cast(string_value.c_str()),std::vector(raw_memory,raw_memory+string_value.size();反之亦然:std::string(reinterpret_cast(&vector_value[0]),vector_va

c++ - 有没有一种安全的方法来获取有符号整数的无符号绝对值,而不会触发溢出?

考虑一个典型的绝对值函数(为了论证,最大大小的整数类型是长的):unsignedlongabs(longinput);一个简单的实现可能看起来像:unsignedlongabs(longinput){if(input>=0){//inputispositive//Weknowthisissafe,becausethemaximumpositivesigned//integerisalwayslessthanthemaximumpositiveunsignedonereturnstatic_cast(input);}else{returnstatic_cast(-input);//uto

c++ - 有没有一种安全的方法来获取有符号整数的无符号绝对值,而不会触发溢出?

考虑一个典型的绝对值函数(为了论证,最大大小的整数类型是长的):unsignedlongabs(longinput);一个简单的实现可能看起来像:unsignedlongabs(longinput){if(input>=0){//inputispositive//Weknowthisissafe,becausethemaximumpositivesigned//integerisalwayslessthanthemaximumpositiveunsignedonereturnstatic_cast(input);}else{returnstatic_cast(-input);//uto

c++ - 为什么 (18446744073709551615 == -1) 是真的?

当我在处理string::npos时,我注意到了一些东西,但我在网上找不到任何解释。(string::npos==ULONG_MAX)和(string::npos==-1)是真的。所以我尝试了这个:(18446744073709551615==-1)这也是正确的。这怎么可能?是因为二元对话吗? 最佳答案 18,446,744,073,709,551,615提到的这个数字,18,446,744,073,709,551,615,实际上是2^64−1。这里重要的是2^64-1本质上是基于0的2^64。无符号整数的第一位是0,而不是1。所以

c++ - 为什么 (18446744073709551615 == -1) 是真的?

当我在处理string::npos时,我注意到了一些东西,但我在网上找不到任何解释。(string::npos==ULONG_MAX)和(string::npos==-1)是真的。所以我尝试了这个:(18446744073709551615==-1)这也是正确的。这怎么可能?是因为二元对话吗? 最佳答案 18,446,744,073,709,551,615提到的这个数字,18,446,744,073,709,551,615,实际上是2^64−1。这里重要的是2^64-1本质上是基于0的2^64。无符号整数的第一位是0,而不是1。所以