草庐IT

integer-overflow

全部标签

c++ - 有符号和无符号之间的减法,然后是除法

下面的结果让我很困惑:inti1=20-80u;//-60inti2=20-80;//-60inti3=(20-80u)/2;//2147483618inti4=(20-80)/2;//-30inti5=i1/2;//-30i3似乎被计算为(20u-80u)/2,而不是(20-80u)/2据说i3和i5是一样的。 最佳答案 IIRC,有符号和无符号整数之间的算术运算将产生无符号结果。因此,20-80u产生等价于-60的无符号结果:如果unsignedint是32位类型,则该结果是4294967236。顺便说一句,将其分配给i1会产生

ruby - 无法将 Symbol 转换为 Integer + Rails 3.2 嵌套属性

我正在做一个简单的项目来测试Rails3.2的嵌套属性。但是,我在尝试提交表单时遇到了这种错误:can'tconvertSymbolintoIntegerpost.rb和comment.rbclassPostposts_controller.rbdefnew@post=Post.new@post.comments.buildrespond_todo|format|format.html#new.html.erbformat.json{renderjson:@post}endend_form.html.erbprohibitedthispostfrombeingsaved:参数{"utf

ruby - Fixnum (Integer) 和 Float 在 Ruby 中如何比较相等?

在Flanagan和Matz的TheRubyProgrammingLanguage中,我读到:TheNumericclassesperformsimpletypeconversionsintheir==operators,sothat(forexample)theFixnum1andtheFloat1.0compareasequal.鉴于甚至两个代表1.0的Float都可能由于四舍五入而无法通过相等性测试,如何保证Fixnum之间的相等性>和一个Float?难道不能保证它只在Decimal和Float之间吗?或者这本书不准确是因为这不是本章上下文中的重点?编辑,希望更加清晰:我刚刚读到

ruby-on-rails - 为什么我会收到此 TypeError - "can' t convert Symbol into Integer”?

我有一个哈希数组。每个条目看起来像这样:-!map:Hashie::Mashname:ConnorHPetersid:"506253404"我正在尝试创建第二个数组,其中仅包含id值。["506253404"]我是这样做的second_array=first_array.map{|hash|hash[:id]}但是我得到了这个错误TypeErrorinPagesController#homecan'tconvertSymbolintoInteger如果我尝试second_array=first_array.map{|hash|hash["id"]}我明白了TypeErrorinPage

ruby - 厨师属性 "no implicit conversion of String into Integer"

我正在编写一个简单地创建数据库配置文件的厨师食谱,但我对访问属性感到困惑。我有几个PHP应用程序部署到每个实例,OpsWorks对每个实例使用相同的配方,所以我在属性文件中有一些不同的设置。属性/数据库设置.rb#APIdefault[:api][:path]='app/config/database.php';default[:api][:host]='test';default[:api][:database]='test';default[:api][:username]='test';default[:api][:password]='test';食谱/数据库设置.rbChef

ruby - 什么是 Java 的 TreeSet<Integer>(自平衡二叉树)的 Ruby 等价物?

我想使用自平衡二叉树来尝试一些算法,但我很难找到与Java的TreeSet(或C#的SortedSet)等效的Ruby。我发现网络代码如下:https://github.com/nahi/avl_tree#readmehttps://github.com/MishaConway/binary_search_treehttp://blog.mikedll.com/2009/09/balanced-avl-binary-search-tree.html我宁愿依赖Ruby标准库中的某些东西。Ruby的标准库中没有一些类吗?除了RubyTree,我似乎找不到太多,我不认为这是self平衡的。(

ruby-on-rails - ActiveRecord 加入 : integer columns converted to strings

我有一个名为Article的模型,我正在加入TwitterShare,如下所示:articles=Article.joins("LEFTOUTERJOINtwitter_sharesONarticles.id=twitter_shares.article_id").where("articles.id=?orarticles.id=?",27165,5632).select("articles.id,twitter_shares.user_id")当我取回文章并检查返回的Article模型时,它以字符串形式返回user_id,即使twitter_shares表中的列类型是整数。为什么是

Ruby: erb throwing error "` result': can't convert String into Integer (TypeError)”

快速背景:我正在设置一个快速而肮脏的模板方案,其中我所有的模板文件都命名为“*.erb”。填充数据驻留在yaml文件中。输出为模板名称减去“.erb”的文件。我没有对erb做太多工作,我收到错误“`result':无法将字符串转换为整数(TypeError)”......这对我来说没有多大意义。这是完成工作的类(generate_interface.rb):#!/usr/bin/rubyrequire'yaml'require'erb'classGenerateInterfacedefinitialize(yamlfile)@yamlfile=yamlfile@erbfiles=Dir

ruby - 为什么 `Kernel::String` 检查 `to_str` 结果,而 `Kernel::Integer` 不检查 `to_int` 结果?

Kernel::Integer和Kernel::String都通过首先尝试调用“long”方法(to_int和to_str),然后是“短”方法(分别为to_i和to_str)。两种方法都检查“短”方法结果的类,并在需要时引发错误:[1]pry(main)>classDummy[1]pry(main)*defto_i[1]pry(main)*"42"[1]pry(main)*end[1]pry(main)*defto_s[1]pry(main)*42[1]pry(main)*end[1]pry(main)*end;[2]pry(main)>Integer(Dummy.new)TypeEr

Ruby Integer 和 Fixnum 意外行为

我想使用Integer类的gcd函数。使用RubyDoc中的示例作为测试,它失败了:irb(main):001:0>72.gcd168NoMethodError:undefinedmethod`gcd'for72:Fixnumfrom(irb):1我有Windows一键安装程序ruby1.8.6(2008-08-11patchlevel287)[i386-mswin32]。在具有相同版本的ruby​​的其他PC上,这可以正常工作。有什么想法吗? 最佳答案 尝试require'rubygems'72.gcd168