草庐IT

符号化

全部标签

java - 发生整数溢出时无符号整数和有符号整数的行为差异

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。在维基百科上阅读这篇关于IntegerOverflow的文章我不太明白为什么有符号整数的溢出会导致未定义的行为,而无符号整数的溢出会导致回绕。为什么它们的行为会有所不同?另一个问题:一般的编程语言是否有任何防止整数溢出的保护措施?

c++ - 数据类型之后或变量名称之前的引用符号之间的区别?

我想知道在引用变量时是否存在差异,“引用符号”在哪里?比如……vector&v;vector&v;到底有什么区别,还是真的只是偏好? 最佳答案 这完全是偏好,但我喜欢在声明变量或指定参数时将&放在类型旁边。这样,当我引用一个变量并使用&my_variable时,我只看一眼就知道它是一个变量引用,与声明无关。我用指针做同样的事情。我将它们声明为int*ptr;这样当我看到*ptr时我知道它只是取消引用它。 关于c++-数据类型之后或变量名称之前的引用符号之间的区别?,我们在StackOve

c++ - 使用命名空间链接到静态库时无法解析的外部符号

我今天遇到了一个我不完全理解的行为。我直接跳到一个最小的代码示例,并会在整个过程中进行解释。我有2个项目:一个静态C++库和一个控制台应用程序。静态库项目:库.h#pragmaoncenamespacefoo{inttestFunc();classStaticLibClass{public:staticinttestMemberFunc();};}库.cpp#include"Library.h"usingnamespacefoo;//justsomefunctionsthatdon'tdomuchinttestFunc(){return10;}intStaticLibClass::te

c++ - Boost spirit解析器如何打印符号表匹配的变量?

我是使用boostspirit的初学者假设我有以下代码解析一个带变量的简单算术表达式:#include#include#include#include#include#include#include#include#includenamespaceclient{namespaceast{structnil{};structsigned_;structprogram;typedefboost::variant,boost::recursive_wrapper>operand;structsigned_{charsign;operandoperand_;};structoperation{

c++ - 将无符号的负数分配给有符号的,可以吗?

当我运行这个时:intmain(){unsigneda=5;std::cout我明白了:4294967291-5这似乎可行,我可以取一个unsigned的负值并将其分配给一个int,但这真的总是可以吗?为什么?当我尝试一些在我看来类似情况的事情时:intc=1;intd=3;doublex=c/d;std::cout我得到0(如预期的那样)。PS:也许有一个骗局,但我没有找到,我能找到的最接近的是this 最佳答案 否。您有未定义的行为可能性。这是一个反例,当将取反的unsignedint赋值给int时会产生UB:unsignedu

显式类型转换(C 风格转换)的 C++ 转换符号和 static_cast 的多种解释

Paragraph4of[expr.cast](在撰写本文时可用的最新C++标准草案中)描述了C样式转换的行为如下:Theconversionsperformedbyaconst_­cast,astatic_­cast,astatic_­castfollowedbyaconst_­cast,areinterpret_­cast,orareinterpret_­castfollowedbyaconst_­cast,canbeperformedusingthecastnotationofexplicittypeconversion.Thesamesemanticrestrictionsan

c++ - 阅读堆栈/堆和符号表概念的好资源是什么?

请推荐一些非常详细地处理这些主题的网站或书籍。我需要更好地理解这些概念(引用C++):堆栈和堆符号表实现范围规则函数调用的实现 最佳答案 您可以阅读DragonBook,但我想这可能太多了。 关于c++-阅读堆栈/堆和符号表概念的好资源是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2064553/

C++ 符号处理和导出 => 允许代码重复?

在我们的项目中,我们有这样的东西:structPointI{//methodsforgetting,settingandcalculatingsomepointstuffprivate:intx;inty;};structPointD{//methodsforgetting,settingandcalculatingsomepointstuffprivate:doublex;doubley;};我建议把它改成这样:templatestructPoint{//methodsforgettig,settingandcalculatingsomepointstuffprivate:Tx;Ty

c++ - 无符号长整型

我提交了一个用C语言编写的矩阵求幂代码,用于查找第n个斐波那契数,我使用longlongint变量存储第n个斐波那契数模10000007的答案,法官给出了“超出时间限制”,但是当我使用“unsignedlonglongint”我的代码在规定时间内被接受,执行时间减少了。我无法理解为什么longlongint给出“超过时间限制”而接受“unsignedlonglongint”?(极端测试用例的答案在两种情况下都是正确的) 最佳答案 为了不重复任何人的努力,请参阅thisquestion还有这个moreadvancedquestiona

c++ - 简化复杂的 C++ 模板符号

我正在开发调试/内存工具。我想显示来自C++的符号,问题是它们非常冗长。目前我只使用__cxa_demangle,但由于包含默认模板参数,这通常会产生超过500个字符的巨大字符串。clang++在报告符号时显然可以做一些聪明的事情,我有什么办法可以利用它吗?举个简单的例子,让我们来看:std::map,std::allocator>>::find(std::stringconst&)这显然可以报告为:std::map::find(std::stringconst&)..如果我有足够智能的工具。很明显,如果没有额外的知识(比如最初使用的包含-我可能会得到这些),这通常很难做到,但我将不胜