草庐IT

Unsigned

全部标签

c++ - C/C++ 编译器如何处理具有不同值范围的类型之间的类型转换?

如何在编译器内不丢失数据的情况下进行类型转换?例如:inti=10;UINTk=(UINT)k;floatfl=10.123;UINTufl=(UINT)fl;//datalosshere?char*p="StackoverflowRocks";unsignedchar*up=(unsignedchar*)p;编译器如何处理这种类型转换?一个显示位的低级示例将不胜感激。 最佳答案 首先请注意,强制转换是将一种类型的值转换为另一种类型的值的显式请求。强制转换也总是会产生一个新对象,它是强制转换运算符返回的临时对象。但是,转换为引用类型

c++ - C/C++ 编译器如何处理具有不同值范围的类型之间的类型转换?

如何在编译器内不丢失数据的情况下进行类型转换?例如:inti=10;UINTk=(UINT)k;floatfl=10.123;UINTufl=(UINT)fl;//datalosshere?char*p="StackoverflowRocks";unsignedchar*up=(unsignedchar*)p;编译器如何处理这种类型转换?一个显示位的低级示例将不胜感激。 最佳答案 首先请注意,强制转换是将一种类型的值转换为另一种类型的值的显式请求。强制转换也总是会产生一个新对象,它是强制转换运算符返回的临时对象。但是,转换为引用类型

c++ - 将 (void*) 转换为 std::vector<unsigned char>

我有一个(void*)我需要转换为std::vector的缓冲区在我可以传递它之前。不幸的是,我的C++类型转换技能有点弱。有什么建议吗? 最佳答案 您将需要缓冲区的长度。一旦你这样做了,我们就可以这样做:unsignedchar*charBuf=(unsignedchar*)voidBuf;/*createavectorbycopyingoutthecontentsofcharBuf*/std::vectorv(charBuf,charBuf+len);好的,评论让我开始了解我为什么不使用reinterpret_cast:InC+

c++ - 将 (void*) 转换为 std::vector<unsigned char>

我有一个(void*)我需要转换为std::vector的缓冲区在我可以传递它之前。不幸的是,我的C++类型转换技能有点弱。有什么建议吗? 最佳答案 您将需要缓冲区的长度。一旦你这样做了,我们就可以这样做:unsignedchar*charBuf=(unsignedchar*)voidBuf;/*createavectorbycopyingoutthecontentsofcharBuf*/std::vectorv(charBuf,charBuf+len);好的,评论让我开始了解我为什么不使用reinterpret_cast:InC+

c++ - 如何冲刺一个未签名的字符?

这不起作用:unsignedcharfoo;foo=0x123;sprintf("theunsignedvalueis:%c",foo);我收到此错误:cannotconvertparameter2from'unsignedchar'to'char' 最佳答案 在查看导致问题的无符号字符之前,请仔细查看以下行:sprintf("theunsignedvalueis:%c",foo);sprintf的第一个参数始终是将值打印到的字符串。该行应该类似于:sprintf(str,"theunsignedvalueis:%c",foo);除

c++ - 如何冲刺一个未签名的字符?

这不起作用:unsignedcharfoo;foo=0x123;sprintf("theunsignedvalueis:%c",foo);我收到此错误:cannotconvertparameter2from'unsignedchar'to'char' 最佳答案 在查看导致问题的无符号字符之前,请仔细查看以下行:sprintf("theunsignedvalueis:%c",foo);sprintf的第一个参数始终是将值打印到的字符串。该行应该类似于:sprintf(str,"theunsignedvalueis:%c",foo);除

c++ - C/C++ 中整数类型别名的标准保证?例如。 : Is "unsigned" always equal to "unsigned int"?

第一个问题:“无符号”总是与“无符号整数”相同吗?“signed”总是与“int”相同吗?“short”总是与“signedshort”相同吗?是……第二个问题:如果C/C++标准规定了上述问题的答案,哪些段落与这些问题相关? 最佳答案 是的,这些都是有保证的。在C++11中,请参阅§7.1.6.2[dcl.type.simple]/table10,其中列出了所有简单类型说明符(及其组合)及其含义。例如,该表包括以下内容:unsigned=>unsignedintunsignedint=>unsignedintsigned=>int

c++ - C/C++ 中整数类型别名的标准保证?例如。 : Is "unsigned" always equal to "unsigned int"?

第一个问题:“无符号”总是与“无符号整数”相同吗?“signed”总是与“int”相同吗?“short”总是与“signedshort”相同吗?是……第二个问题:如果C/C++标准规定了上述问题的答案,哪些段落与这些问题相关? 最佳答案 是的,这些都是有保证的。在C++11中,请参阅§7.1.6.2[dcl.type.simple]/table10,其中列出了所有简单类型说明符(及其组合)及其含义。例如,该表包括以下内容:unsigned=>unsignedintunsignedint=>unsignedintsigned=>int

c++ - 如何在不使用 time_t 的情况下将 std::chrono::time_point 转换为 std::tm?

我想打印或提取年/月/日值。由于2038年的问题,我不想使用time_t,但是我在网上找到的所有示例都使用它来将time_point转换为tm.有没有简单的方法将time_point转换为tm(最好是不带boost)?libc中的timesub之类的实现将是我最后的手段:http://www.opensource.apple.com/source/Libc/Libc-262/stdtime/localtime.c编辑:阅读建议的链接并进行更多研究后,我得出以下结论。在64位长的地方使用time_t是可以的(对于大多数用途)。将Boost.Date_Time用于可移植代码。值得注意的是,

c++ - 如何在不使用 time_t 的情况下将 std::chrono::time_point 转换为 std::tm?

我想打印或提取年/月/日值。由于2038年的问题,我不想使用time_t,但是我在网上找到的所有示例都使用它来将time_point转换为tm.有没有简单的方法将time_point转换为tm(最好是不带boost)?libc中的timesub之类的实现将是我最后的手段:http://www.opensource.apple.com/source/Libc/Libc-262/stdtime/localtime.c编辑:阅读建议的链接并进行更多研究后,我得出以下结论。在64位长的地方使用time_t是可以的(对于大多数用途)。将Boost.Date_Time用于可移植代码。值得注意的是,