草庐IT

integer-overflow

全部标签

c++ - MSVC++ : Strangeness with unsigned ints and overflow

我有以下代码:#includeusingnamespacestd;intmain(intargc,char*argv[]){stringa="a";for(unsignedinti=a.length()-1;i+1>=1;--i){if(i>=a.length()){cerr如果我在完全优化的MSVC中编译,我得到的输出是“-1?”。如果我在Debug模式下编译(没有优化),我不会得到任何输出(预期。)我认为标准保证无符号整数以可预测的方式溢出,因此当i=(unsignedint)(-1)、i+1=0时,循环条件i+1>=1失败。相反,测试以某种方式通过了。这是编译器错误,还是我在某处

c++ - std::to_integer 的目的是什么?

据我所知,std::to_integer相当于T(value)其中value是类型为std::byte的变量.我研究了主要编译器的一些实现,发现在这种情况下,等效的字面意思是实现为。换句话说,大多数时候to_integer实际上实现为:returnT(value);仅此而已。我不明白的是,这样的功能有什么用?具有讽刺意味的是,缺点甚至超过优点。我应该为这样的函数包含一个完整的头文件,只是为了避免最有可能直接内联的类C类型转换。是否还有其他原因,或者它只是一个漂亮类C类型转换的替代品,仅此而已? 最佳答案 it'sjustreally

c++ - 将 std::integer_sequence 作为模板参数传递给元函数

如何将std::integer_sequence作为模板参数传递给元函数(即不是函数模板)?给出例如以下用例(但不限于此):我想使用整数序列从参数包中删除最后的N类型。我想我可以使用thisSOquestion中的selector,但我未能将整数序列传递给此元函数。#include#includetemplatestructselector{usingtype=std::tuple::type...>;};templatestructremove_last_n{usingIndices=std::make_index_sequence;usingtype=typenameselecto

kotlin - java.lang.Integer 在 Kotlin 中不能强制转换为 java.lang.Long(初始值为 null 时)

如果我有以下内容,它可以工作(即数字得到分配1000)funmain(args:Array){varnumber:Long?=null//ornumber=0valsimpleObject=SimpleClass()number=1000println("Hi+$number")}如果我有以下内容,它可以工作(即数字得到分配1000)importjava.util.*funmain(args:Array){varnumber:Long=0valsimpleObject=SimpleClass()number=simpleObject.getValue()println("Hi+$num

kotlin - java.lang.Integer 在 Kotlin 中不能强制转换为 java.lang.Long(初始值为 null 时)

如果我有以下内容,它可以工作(即数字得到分配1000)funmain(args:Array){varnumber:Long?=null//ornumber=0valsimpleObject=SimpleClass()number=1000println("Hi+$number")}如果我有以下内容,它可以工作(即数字得到分配1000)importjava.util.*funmain(args:Array){varnumber:Long=0valsimpleObject=SimpleClass()number=simpleObject.getValue()println("Hi+$num

c++ - 缩小从 double 到 float 的转换 : is overflow behaviour guaranteed?

如果我试试这个floatf=(float)numeric_limits::infinity();或者实际上,尝试将任何大于floatmax的值转换为float,我能保证最终得到无穷大吗?它适用于GCC,但它是标准吗? 最佳答案 floatf=(float)numeric_limits::infinity();这保证设置f如果您的编译平台提供用于浮点计算的IEEE754算法(通常会提供),则为无穷大。Orindeed,trytocastanythingbiggerthanfloatmaxdowntoafloat,amIguarante

kotlin - 将edittext获取的String转换为Kotlin语言的Integer

我正在尝试使用Kotlin语言制作一个简单的Android应用程序。我有一个EditText,我在String中获取它的值,但我想将该值转换为整数。如何在Kotlin语言中将此字符串转换为整数?。 最佳答案 以上是总体思路,但这里是直接来自AndroidStudio的语法,来self正在做的另一个教程。请注意,编译器非常乐意进行强制转换。varmyNewInt:Int=myEditTextView.text.toString().toInt() 关于kotlin-将edittext获取的

kotlin - 将edittext获取的String转换为Kotlin语言的Integer

我正在尝试使用Kotlin语言制作一个简单的Android应用程序。我有一个EditText,我在String中获取它的值,但我想将该值转换为整数。如何在Kotlin语言中将此字符串转换为整数?。 最佳答案 以上是总体思路,但这里是直接来自AndroidStudio的语法,来self正在做的另一个教程。请注意,编译器非常乐意进行强制转换。varmyNewInt:Int=myEditTextView.text.toString().toInt() 关于kotlin-将edittext获取的

c++ - 错误 : switch quantity not an integer

我已经通过StackOverflow和多谷歌链接研究了我的问题,但我仍然感到困惑。我想对我来说最好的事情就是问...我正在创建一个简单的命令行计算器。到目前为止,这是我的代码:conststd::stringCalculator::SIN("sin");conststd::stringCalculator::COS("cos");conststd::stringCalculator::TAN("tan");conststd::stringCalculator::LOG("log");conststd::stringCalculator::LOG10("log10");voidCalcu

Java Integer.MAX_VALUE 与 Kotlin Int.MAX_VALUE

我注意到了一件有趣的事情。Java的Integer.MAX_VALUE是0x7fffffff(2147483647)Kotlin的Int.MAX_VALUE是2147483647但是如果你写在Java中:int值=0xFFFFFFFF;//一切都很好(但打印的值为'-1')在Kotlin中:valvalue:Int=0xFFFFFFFF//你得到异常整数字面量不符合预期的类型Int很有趣吧?因此,您可以在Java中执行newjava.awt.Color(0xFFFFFFFF,true)而在Kotlin中执行not之类的操作。Color类在“二进制”级别与该int一起工作,因此对于所有构