草庐IT

Unsigned

全部标签

c++ - 数学将1970年以来的秒转换为日期,反之亦然

自1970年1月1日00:00以来,我有一个秒,以int64表示(以纳秒为单位),我正尝试将其转换为月/日/年/日。迭代地执行此操作很容易,我可以正常工作,但我想按惯例进行。我正在寻找实际的数学。 最佳答案 旧问题的新答案:这个新答案的原理:现有答案要么不显示纳秒到年/月/日转换的算法(例如,它们使用隐藏了源的库),要么在显示的算法中使用迭代。这个答案没有任何迭代。Thealgorithmsarehere,并进行了详细说明。还对它们进行了+/-一百万年的跨度(远远超出您的需要)的单元测试。该算法不计算leap秒。如果需要,可以完成,

c++ - 数学将1970年以来的秒转换为日期,反之亦然

自1970年1月1日00:00以来,我有一个秒,以int64表示(以纳秒为单位),我正尝试将其转换为月/日/年/日。迭代地执行此操作很容易,我可以正常工作,但我想按惯例进行。我正在寻找实际的数学。 最佳答案 旧问题的新答案:这个新答案的原理:现有答案要么不显示纳秒到年/月/日转换的算法(例如,它们使用隐藏了源的库),要么在显示的算法中使用迭代。这个答案没有任何迭代。Thealgorithmsarehere,并进行了详细说明。还对它们进行了+/-一百万年的跨度(远远超出您的需要)的单元测试。该算法不计算leap秒。如果需要,可以完成,

c++ - 如何在需要旧式 unsigned char 的地方使用新的 std::byte 类型?

std::byte是C++17中的一种新类型,被制成enumclassbyte:unsignedchar.这使得在没有适当转换的情况下无法使用它。所以,我为这种类型的vector取了一个别名来表示一个字节数组:usingBytes=std::vector;但是,它不可能在旧式中使用:接受它作为参数的函数会失败,因为这种类型不能轻易转换为旧式std::vector键入,例如zipper的用法图书馆:/resourcecache/pakfile.cpp:Inmemberfunction'utils::Bytesresourcecache::PakFile::readFile(constst

c++ - 如何在需要旧式 unsigned char 的地方使用新的 std::byte 类型?

std::byte是C++17中的一种新类型,被制成enumclassbyte:unsignedchar.这使得在没有适当转换的情况下无法使用它。所以,我为这种类型的vector取了一个别名来表示一个字节数组:usingBytes=std::vector;但是,它不可能在旧式中使用:接受它作为参数的函数会失败,因为这种类型不能轻易转换为旧式std::vector键入,例如zipper的用法图书馆:/resourcecache/pakfile.cpp:Inmemberfunction'utils::Bytesresourcecache::PakFile::readFile(constst

c++ - 安全地以模块化方式乘以无符号整数的最佳 C++ 方法是什么?

假设您正在使用和类型如std::uint8_t和std::uint16_t,并想做+=之类的操作和*=在他们。您希望这些数字的算术以模块化方式进行环绕,就像C/C++中的典型情况一样。这通常有效,您会发现在实验上可以与std::uint8_t一起使用。,std::uint32_t和std::uint64_t,但不是std::uint16_t.具体来说,乘以std::uint16_t有时会失败,优化构建会产生各种奇怪的结果。原因?由于有符号整数溢出导致的未定义行为。编译器基于未发生未定义行为的假设进行优化,因此开始从您的程序中修剪代码块。具体的未定义行为如下:std::uint16_tx

c++ - 安全地以模块化方式乘以无符号整数的最佳 C++ 方法是什么?

假设您正在使用和类型如std::uint8_t和std::uint16_t,并想做+=之类的操作和*=在他们。您希望这些数字的算术以模块化方式进行环绕,就像C/C++中的典型情况一样。这通常有效,您会发现在实验上可以与std::uint8_t一起使用。,std::uint32_t和std::uint64_t,但不是std::uint16_t.具体来说,乘以std::uint16_t有时会失败,优化构建会产生各种奇怪的结果。原因?由于有符号整数溢出导致的未定义行为。编译器基于未发生未定义行为的假设进行优化,因此开始从您的程序中修剪代码块。具体的未定义行为如下:std::uint16_tx

c++ - 使用 GLuint 而不是 unsigned int 有什么好处?

我喜欢尽可能地标准,那么当我可以使用原始类型时,为什么要“限制”我的类将其成员定义为OpenGL类型?有什么优势吗? 最佳答案 “unsignedint”类型的大小取决于您构建的平台。我希望这通常是32位,但它可能是16位或64位(或其他-取决于平台)。特定于库的类型通常被创建为根据特定于平台的规则进行类型定义。这允许通用应用程序使用正确的类型,而不必知道将要构建的平台。相反,特定于平台的知识被限制在单个通用头文件中。 关于c++-使用GLuint而不是unsignedint有什么好处?

c++ - 使用 GLuint 而不是 unsigned int 有什么好处?

我喜欢尽可能地标准,那么当我可以使用原始类型时,为什么要“限制”我的类将其成员定义为OpenGL类型?有什么优势吗? 最佳答案 “unsignedint”类型的大小取决于您构建的平台。我希望这通常是32位,但它可能是16位或64位(或其他-取决于平台)。特定于库的类型通常被创建为根据特定于平台的规则进行类型定义。这允许通用应用程序使用正确的类型,而不必知道将要构建的平台。相反,特定于平台的知识被限制在单个通用头文件中。 关于c++-使用GLuint而不是unsignedint有什么好处?

c++ - C++ 中的 Uint32 和 unsigned int 有什么区别?

是一样的吗?如果不是:有什么区别?如果是,那为什么需要这种类型? 最佳答案 uint32_t(或者C++11之前的编译器调用它)保证为32位无符号整数;unsignedint是编译器最喜欢调用unsignedint的任何无符号整数,只要它符合标准的要求(要求它的最小范围为0-65535)。像int一样,unsignedint通常是一个整数,对于当前架构来说可以快速操作(通常它适合一个寄存器),所以它可以在以下情况下使用需要一个“正常”的快速整数。uint32_t则在您需要精确宽度整数时使用,例如序列化到文件,或者当您需要该确切范围或

c++ - C++ 中的 Uint32 和 unsigned int 有什么区别?

是一样的吗?如果不是:有什么区别?如果是,那为什么需要这种类型? 最佳答案 uint32_t(或者C++11之前的编译器调用它)保证为32位无符号整数;unsignedint是编译器最喜欢调用unsignedint的任何无符号整数,只要它符合标准的要求(要求它的最小范围为0-65535)。像int一样,unsignedint通常是一个整数,对于当前架构来说可以快速操作(通常它适合一个寄存器),所以它可以在以下情况下使用需要一个“正常”的快速整数。uint32_t则在您需要精确宽度整数时使用,例如序列化到文件,或者当您需要该确切范围或