Ruby 初心者スレッド Part 65

レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん (ワッチョイ 0f80-JI52)
垢版 |
2018/12/22(土) 04:43:34.03ID:84E3pYZa0
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 64
https://mevius.5ch.net/test/read.cgi/tech/1535797516/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/

Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
862デフォルトの名無しさん (ワッチョイ 9305-CPe6)
垢版 |
2019/11/23(土) 01:27:53.59ID:DazDco060
method([0,1])でした
失礼しました
2019/11/23(土) 03:03:35.14ID:8xX8HZu80
>>861
そういう仕様です

https://magazine.rubyist.net/articles/0032/0032-CallByValueAndCallByReference.html
864デフォルトの名無しさん (ワッチョイ 9305-CPe6)
垢版 |
2019/11/23(土) 10:59:21.53ID:DazDco060
>>863
ありがとうございます
アドレスの参照先をコピーしてるだけだったんですね
理解しました
調べたところMarshalで書き出せばバイト値もコピーできるようなのでこの方法でいきます
2019/11/23(土) 14:01:09.34ID:8xX8HZu80
>>864
使い方にもよるのかもしれんが階層が浅くて固定ならdupで十分じゃない?

foo = [[1,2], [3,4], [5,6,7]]
bar = foo.dup

bar[0] = [9,9,9]
foo #=> [[1, 2], [3, 4], [5, 6, 7]]
bar #=> [[9, 9, 9], [3, 4], [5, 6, 7]]

bar[1].push 200
foo #=> [[1, 2], [3, 4, 200], [5, 6, 7]]
bar #=> [[9, 9, 9], [3, 4, 200], [5, 6, 7]]

bar[2] = bar[2].dup.push 300
foo #=> [[1, 2], [3, 4, 200], [5, 6, 7]]
bar #=> [[9, 9, 9], [3, 4, 200], [5, 6, 7, 300]]

階層が深くて手動でdupするのが大変ならdeep_dup

require 'active_support'
require 'active_support/core_ext/object/deep_dup'

baz = foo.deep_dup
baz[1].push 300
foo #=> [[1, 2], [3, 4, 200], [5, 6, 7]]
baz #=> [[1, 2], [3, 4, 200, 300], [5, 6, 7]]
2019/11/23(土) 20:53:58.93ID:fygFNKSM0
年収は、5大SIer, Java などの土方系・奴隷、多重請負構造では、1社間に入る度に、3割抜かれる!

顧客が100万円払っても、間1 が、30万円抜いて、
自社には70万円で来るので、自分の給料は、25万円ぐらいw

顧客が100万円払っても、間1 が、30万円抜いて、間2 が、20万円抜くと、
自社には50万円で来るので、自分の給料は、20万円ぐらいw

だから、ハローワークのIT 講座でも、奴隷になる2次請け以降に、就職しないように言われる。
Javaの平均年収が600万円なら、300万円の奴隷と、900万円の大企業の奴隷使いがいる。
元々、大企業の人は、給料が良いだけ。
給料は言語に関係ない。労働形態による!

抜きを警戒する人は、派遣なら3割抜かれて、後は自分の給料になるけど、
仕事がない期間の保証がない。
それか、フリーランスのエージェントで、1割ぐらいの抜きを探すか

一方、Ruby などの自社サービス系は、多重請負構造じゃないから抜かれない
2019/11/23(土) 21:01:37.75ID:fygFNKSM0
C/C++ 以外のほとんどの言語では、参照がコピーされるだけ!
インスタンスを作っていない

だから、実際のインスタンス数は、clone, dup, new された回数を、チェックすれば良い
868デフォルトの名無しさん (ワッチョイ fb8c-qZD/)
垢版 |
2019/11/23(土) 22:03:14.93ID:uAZdpObm0
土方系の仕事って何ですか
2019/11/23(土) 22:07:51.58ID:jA/F562DM
>>866
そんなRubyの平均年収は全言語中最低
https://tech.nikkeibp.co.jp/atcl/nxt/column/18/01068/111100004/
2019/11/24(日) 01:52:22.27ID:iwyjZSbL0
>>868
顧客に価値を提供すること
2019/11/24(日) 02:00:18.56ID:2vFps37N0
土方にはなるな
SIerにはなるな
2019/11/24(日) 02:02:59.56ID:Q6cceAnpa
しかし現実には大半のRubyistよりもSIerのドカタの方が給料は高いのであった
2019/11/24(日) 04:46:27.73ID:kT5P2hJJ0
給料だけでもないやろ。
つーか、どうでもいいから。んな話は。
2019/11/24(日) 15:33:55.35ID:Gqvqz24c0
要件定義、外部設計を受注できるプライマリの
会社に行かないと高収入はないよ。
内部設計、プログラミングは下流工程だから下請けに流される。

3割抜くとか言うが、粗利3割はどの業界でも普通だし。
875デフォルトの名無しさん (ワッチョイ fb8c-qZD/)
垢版 |
2019/11/24(日) 18:51:34.90ID:ednGVdun0
言語を知っている。いや知っているだけで金になる仕事はないから
2019/11/24(日) 23:07:40.54ID:Q5WFFNoW0
上流工程が、下級工程の給料を決める

だから、YouTube で有名なKENTA が、
クライアント側ではなく、サーバー側・構築運用へ行った

今世紀最大の起業家、Ruby でVagrant を作った、
HashiCorp のMitchell Hashimoto も、Go でTerraform を作った!

富・技術革新が集中する所に、Hashimoto は行く!

実際に、車のメーカーの企業の時価総額は変わらないけど、
アマゾン・Google などのサーバー屋は、100兆円企業になってる!
2019/11/25(月) 04:07:09.54ID:gVPe0v4t0
>>876
日本のIT企業はほぼ国内事業しかやってないし
規模も小さいからどうしても時価総額は上がらないんだろうね
あと大したことやってない
878デフォルトの名無しさん (ワイーワ2 FF63-KqLj)
垢版 |
2019/11/25(月) 12:33:00.08ID:pjJuONFZF
>上流工程が、下級工程の給料を決める
>クライアント側ではなく、サーバー側・構築運用へ行った

上流ってそういう意味か?ωωω
2019/11/25(月) 16:27:01.28ID:Lb2w9ntUM
Amazonの売上の大半はEC
Googleの売上の大半は広告
どっちも実際には上物で稼いでいて、AWSやGCPの売上比率は15%程度に過ぎない
キチガイの目に映る世界と実態の間にはは大きな乖離があることがわかるだろう
2019/11/25(月) 17:19:36.92ID:vZmdeQAZ0
まあ利益出してるところじゃなくて"売上"というのなら、
ECが一番やろうな。そりゃ
881デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
垢版 |
2019/11/28(木) 00:37:50.62ID:WsOSEkue0
Windows10, WSL, Ubuntu 16.4 で、
libruby2.3, ruby2.3 の更新が来た!

Ruby2.3 は、もうサポート切れだけど、まだ誰かがサポートしてるw
Ubuntu チームか
2019/11/28(木) 17:42:14.05ID:dnvj190uM
ビルドしてるだけやろ。
883デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
垢版 |
2019/11/30(土) 04:33:29.25ID:HbGyzSLF0
Vagrant, Chef, RSpec, Serverspec などの、

DSL の書き方だけができる、ライブラリ・フレームワークはないの?
2019/11/30(土) 07:04:52.88ID:WKFbtD9B0
>>883
なんか面白そうだね?
どういう事?
2019/11/30(土) 09:10:10.03ID:HbGyzSLF0
環境の構築テストなどを、すごく簡潔に、宣言っぽく書いている

例えば、ファイル・ディレクトリなどを作る場合でも、エラー処理もなく、1行で書いてる。
Maven, Gradle も、こういう宣言っぽい感じかな?

便利だなと思って
2019/12/02(月) 07:50:51.40ID:sFARCTmI0
k-sato_at_oiaxって実はもう死んでたりするの?
887デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
垢版 |
2019/12/02(月) 22:47:05.03ID:H5nAExhM0
改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9/7

この本が、株式会社オイアクス監修だろ。
著者2人は、株式会社ルビキタスにも所属している
2019/12/03(火) 09:08:31.07ID:I9YoNGrF0
義務教育にrubyが組み込まれなかった時点でrubyは終わりだろ
ポジション取られたのがscratch

ついでにオブジェクト脳の本の社長起立プログラム、あれ最高にキモイ
889デフォルトの名無しさん (ワッチョイ 232c-+J45)
垢版 |
2019/12/05(木) 09:12:33.74ID:fTTGdtWT0
Windows のPowerShell で、1-liner で、webrick サーバーを立てるのに、

上だとエラーになって、
下のように、%Q("./") でクォートすると、正常に動くのは、なぜでしょう?

どういうカラクリなの?

ruby -rwebrick -e 'WEBrick::HTTPServer.new(:DocumentRoot => "./", :Port => 8888).start'

ruby -rwebrick -e 'WEBrick::HTTPServer.new(:DocumentRoot => %Q("./"), :Port => 8888).start'
2019/12/05(木) 09:19:26.64ID:wT3fRGGOr
windowsで-e の後にシングルクォーテーション使ってるからでしょ

ruby -e 'puts "hello"'
でもエラーになるぞ
2019/12/05(木) 09:20:45.92ID:wT3fRGGOr
ちな
ruby -e 'puts \"hello\"'

ruby -rwebrick -e 'WEBrick::HTTPServer.new(:DocumentRoot => \"./\", :Port => 8888).start'
なら問題ない
2019/12/05(木) 10:48:53.10ID:fTTGdtWT0
ruby -e 'puts "hello"'
は、コマンドプロンプトではエラーにならないが、
PowerShell ではエラーになるw

ruby -e 'puts %Q("hello")'
は、コマンドプロンプト・PowerShell の両方で正常

ruby -e 'puts "hello"'
が、コマンドプロンプト・PowerShell から、Rubyに渡る際に、どう変換されるのか?

そのカリクリを知りたい
893デフォルトの名無しさん (アウウィフ FFa9-MVf8)
垢版 |
2019/12/05(木) 10:57:49.63ID:IbmhSLeWF
WSL使え

あるいはWindowsのコマンドプロンプトなら
ruby -e "puts 'hello'"
2019/12/05(木) 11:11:38.90ID:wT3fRGGOr
だから'使うなっつってんだろアホか
895デフォルトの名無しさん (ワッチョイ 7501-MVf8)
垢版 |
2019/12/05(木) 11:21:52.16ID:q0kDwfyl0
製造者がWindowsが憎いMicrosoftが憎いと言ってるのに、わざわざWindows上で使わなくても。
2019/12/05(木) 21:12:26.41ID:h+M+c6Hd0
コマンドプロンプトのクォート解釈は、控えめに言ってメチャクチャだからな。
昔のものだし、しかたない。

それに比べたら、PowerShellははるかにまともで現代的。
897889 (ワッチョイ 232c-+J45)
垢版 |
2019/12/05(木) 23:40:17.64ID:fTTGdtWT0
まとめ。
Windows10 で、1-liner のruby -e で順に、1〜3 を実行した場合

1. 'puts "hello"'
2. 'puts %Q("hello")'
3. "puts 'hello'"

1〜3は、コマンドプロンプトと、WSL, Ubuntu 16.04 では、
hello, "hello", hello

PowerShell では、
エラー, "hello", hello
898デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/06(金) 10:14:28.56ID:uUae0oO6F
pythonは””も’’も意味一緒だが
rubyは””と''は微妙に意味違うよな
899デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/06(金) 10:16:15.68ID:uUae0oO6F
'puts %Q(hello)'
あるいは
"puts %Q(hello)"
で良いのに
2019/12/06(金) 12:46:17.58ID:IktivxOB0
>>899
まとめ。
Windows10 で、1-liner のruby -e で順に、1〜2 を実行した場合

1. 'puts %Q(hello)'
2. "puts %Q(hello)"

コマンドプロンプト・PowerShell、WSL, Ubuntu 16.04 のすべてで、
hello
と出力された!
2019/12/06(金) 20:18:06.92ID:nE0DnhAQa
>>898
微妙というか、ダブルクォートは中身を命令として実行し、
シングルクォートは中身を文字列として処理する。

全然違うぞ
2019/12/06(金) 21:53:56.86ID:P1BfZN9u0
‘‘
’’
””
‘’

眼力チェック
2019/12/06(金) 23:26:41.64ID:IktivxOB0
1-liner を、" " で囲むと「$ \ ` !」などの機能が働くので、
それよりも強いエスケープである、' ' で囲む

' ' で、すべての特殊文字を無効化して、シェルに解釈させないため
904デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/07(土) 14:11:49.26ID:qPdUR/SgF
>>902
``
2019/12/07(土) 16:01:04.83ID:9WC+Jh540
>>903
それが結局、シェルによるっつー話やろ。
906デフォルトの名無しさん (ワッチョイ 232c-+J45)
垢版 |
2019/12/09(月) 06:17:52.14ID:+FpDkG8n0
rdoc の説明を読んでるけど、難しい

皆、自作ライブラリをrdoc用に書いてるの?
2019/12/09(月) 06:52:14.04ID:+FpDkG8n0
RDoc よりも、YARD の方が簡単かな?
908デフォルトの名無しさん (ワッチョイ 62ad-I3wE)
垢版 |
2019/12/17(火) 13:35:16.51ID:ObjwLX/w0
配列に0から任意の整数を重複なく格納するメソッドを作ってみたんですが、戻り値がnillになってしまいます
どうすれば解決できますか?
def random_sort(array, n)
array = []
judgement_array = [false]
i = 0

while(i < n + 1)
array[i] = rand(n + 1)
k = 0
while(k < i)
judgement_array[k] = array[k] == array[i]
k += 1
end
next if judgement_array.any?
i += 1
end
end

array1 = []
p random_sort(array1, 9)
909デフォルトの名無しさん (アウウィフ FF3b-uKDx)
垢版 |
2019/12/17(火) 13:41:59.97ID:rApV4krMF
shuffle! shuffle!
910デフォルトの名無しさん (ワッチョイ 62ad-I3wE)
垢版 |
2019/12/17(火) 14:23:19.78ID:ObjwLX/w0
>>908です
定義の最後の部分で戻り値を記述するのを忘れており
記述したら解決しました
2019/12/17(火) 16:20:58.58ID:kLn+0u7yM
ズコー
2019/12/17(火) 16:47:49.10ID:o3ShK0md0
p [*0..9].shuffle
913デフォルトの名無しさん (ワッチョイ efd2-LrQS)
垢版 |
2019/12/18(水) 17:27:34.36ID:JutxhN8f0
digitsメソッドが返す配列を元の数値に戻すには
自分で計算するしかないのかな
何かついになるメソッドがないかと
探してみたけどわからなかった
2019/12/18(水) 22:00:34.91ID:LSlKy/12r
ないね

p [1, 1, 0, 1, 'hoge'].to_i(2) # => 11
みたいなString#のあってもいいよね
2019/12/18(水) 22:01:10.07ID:LSlKy/12r
誤爆

みたいなString#to_iに相当するメソッドがあってもいいよね
2019/12/18(水) 23:03:33.03ID:j3JURanB0
これの逆を考えるか

123.to_s.chars.map(&:to_i).reverse
123.digits
#=> [3, 2, 1]

他には、Array#pack、String#unpack とか
2019/12/18(水) 23:17:07.42ID:N9ghlCsW0
自分で計算というか.reverse.join.to_iすればいいよね?
2019/12/19(木) 01:41:56.39ID:GB4b8bgW0
見た目シンプルだけど一旦文字列を経るのがモヤっとする
かといってreverse_each.inject(0){|v,d|v*10+d}とかやると何やってるのか分かりづらいしなあ
2019/12/19(木) 11:46:12.90ID:rpR+KBR90
>>914
Math::BaseCalc - Convert numbers between various bases - metacpan.org
https://metacpan.org/pod/Math::BaseCalc

昔探したがperlにはあるがrubyにはないtpyhonにも無い
なんで無いのか分からないほど便利な関数なのになんで無いんだ?
920デフォルトの名無しさん (ワイーワ2 FFdf-yOET)
垢版 |
2019/12/19(木) 12:17:12.46ID:+cpLTGtZF
tpyhonは知らんけどpythonにはnumpyでpackbitsがあるんやで
2019/12/19(木) 14:26:11.65ID:snKgfw1x0
>>919

>>914が言ってるのは単なる基数の変換じゃないよ
基数の変換はto_s, to_iに2~36までなら直接渡せるからそれで済ませることが多い
もっと大きい基数が必要になってもinjectやmapで簡単に変換可能だから
いくつかgemあるけど人気ない
2019/12/19(木) 18:11:13.04ID:4hkxYlHE0
こういう基本的なものは、言語そのものに内蔵しないといけない
gem作っても流行らない
2019/12/19(木) 19:30:39.32ID:xlnTqgd4r
だな
これだけなら自分で書いた方が速いもんね
2019/12/19(木) 19:39:22.26ID:NWHUALIi0
基本的でもないやろ。
2019/12/19(木) 21:39:52.45ID:snKgfw1x0
2/8/10/16進数の変換は基本的だろうけど
それはInteger#to_s, String#to_i, Integer()で十分

遊びで作るようなプログラムを除くと
それ以外で必要なのってBase64くらいでそれは別途用意されてる
2019/12/20(金) 00:26:43.84ID:Eyw3tJ4L0
digits/undigits 作ってみた (baseに配列が使える)
https://ideone.com/QJgsBR

[1, 1, 0, 1, 'hoge'].to_i(2) # => 11
123456789.to_i([24,60,60]) #=> [9,33,21,1428]
[9,33,21,1428].undigits([24,60,60]) #=> 123456789
2019/12/21(土) 23:51:56.40ID:u8N2YXrT0
digits/undigits 拡張してみた (baseをbit数に出来る,負の数で符号拡張)
https://ideone.com/xvXVfv

0b0011_100_01.my_digits([4,3,2],1) #=> [1,4,3]
[1,4,3].undigits([4,3,2],1).to_s(2) #=> "1110001" -> 11_100_01
0b0011_100_01.my_digits([-4,-3,-2],1) #=> [1,-4,3] (-4:符号拡張)
[1,-4,3].undigits([4,3,2],1).to_s(2) #=> "1110001"
2019/12/22(日) 00:15:06.50ID:O05uH48x0
さて問題です。>>926-927を説明なしに理解できますか?
929デフォルトの名無しさん (ワイーワ2 FFdf-hPjh)
垢版 |
2019/12/22(日) 13:06:26.92ID:6Us+wzVLF
質問です
Ruby on Rails で SQLite は使えますか?
使えるならどうやれば良いですか?
2019/12/22(日) 13:15:06.84ID:dEobfqv4a
>>929
https://www.google.com/search?q=Ruby+on+Rails+で+SQLite+は使えますか?
2019/12/22(日) 19:43:26.79ID:u+b66RrE0
SQLite, MySQL, PostgreSQL の、3大DB が使える!
MariaDB は知らないけど

ただし、SQLite は開発用専門で、本番では使えない!
2019/12/22(日) 22:51:56.37ID:bTmhsrle0
>>931
MariaDBもきっとだいたいだいじょうぶ。
まだまだMySQL互換だから。
2019/12/22(日) 23:02:08.75ID:O05uH48x0
>>931
SQLiteはiPhoneで重要な機能を提供してるのも知らないの?w
2019/12/23(月) 00:32:47.68ID:U5hT/i5g0
>>931 >>932
ドライバーが提供されてればMariaDBに限らずどのRDBでも使えるぞ

>>933
SQLiteは高い並行性が求められるWebアプリには適さない
Rails用のDBという文脈では>>931のSQLiteに対する認識は間違ってない
2019/12/23(月) 00:44:18.94ID:PWVJIOWbr
>>933
自分は文脈読めないバカですって自己紹介してるようなもんだな
2019/12/23(月) 13:18:52.98ID:+KUE/8IiM
まあ実際にはRailsアプリでSQLiteを使うことなんて無いから、使えないと考えても差し支えない
DBMSの癖に依存しないアプリなんて現実には不可能なので、テストであっても最初からプロダクションと同じDBMSを使えばよい
937931 (ワッチョイ 9f2c-1ZZR)
垢版 |
2019/12/24(火) 03:27:44.81ID:3XzgnZW70
SQLite は、ブラウザがURL などを保存するのに使っている

ただ、Rails では開発用専門で、本番では使えない
2019/12/24(火) 10:20:24.51ID:a69VsF/md
Dockerが主流になるまでは、ぽん置きで使えるようになる簡単なツール程度だと使ってたな、俺は。
2019/12/24(火) 19:19:54.79ID:fkiwsPE50
性能的にも信頼性的にも、御一人様用なんだろ。
940デフォルトの名無しさん (ワッチョイ 9f2c-1ZZR)
垢版 |
2019/12/25(水) 20:06:31.05ID:ZI663GBY0
C:/Ruby24-x64/lib/ruby/2.4.0/fileutils.rb を参考にして、
module 内 moduleの、DryRun みたいなモジュールを作った!
$stdout/$stderr で、出力先を切り替える

module MyFileUtils
@fileutils_output = $stdout

module_function
public

extend self
def f( *args, **options ) # 配列・ハッシュ
p @fileutils_output
@fileutils_output.puts( args, options )
end

module DryRun
include MyFileUtils
@fileutils_output = $stderr

module_function
public

extend self
def f( *args, **options )
super( *args, **options, noop: true, verbose: true )
end
end
end

MyFileUtils::DryRun.f( 1, 2, a: 8, b: 9 )
MyFileUtils.f( 1, 2, a: 8, b: 9 )
2019/12/25(水) 20:11:42.34ID:ZI663GBY0
出力は、

MyFileUtils::DryRun.f( 1, 2, a: 8, b: 9 )

#<IO:<STDERR>>
1
2
{:a=>8, :b=>9, :noop=>true, :verbose=>true}

MyFileUtils.f( 1, 2, a: 8, b: 9 )

#<IO:<STDOUT>>
1
2
{:a=>8, :b=>9}
2019/12/25(水) 20:18:49.19ID:c8DC0dTUr
ここはお前の日記帳じゃねえんだよ
2019/12/28(土) 13:49:43.58ID:TvplFsgk0
ビット演算のビット反転について質問なんですが
(~0b1010).to_s(2) の戻り値が"-1011"なのは何故ですか?
反転なので単純に "0101" となるか、補数表現なら"0110" だと思ったのですが
2019/12/28(土) 14:35:53.34ID:AcwxZTaB0
# ~n == -n-1
~0b1010 = -0b1010-1 = -0b1011
2019/12/28(土) 14:44:44.17ID:TvplFsgk0
>>944
そもそものビット反転の定義を知らずに悩んでました
ご回答ありがとうございました
2019/12/28(土) 15:59:19.72ID:IyT0aSo9r
>>945
~(0b...00001010) = (0b...11110101) = -11
947デフォルトの名無しさん (ワイーワ2 FF7a-v1fK)
垢版 |
2019/12/28(土) 16:00:06.34ID:5Cng//AmF
0b1010
32bitとして
0000 0000 0000 0000 0000 0000 0000 1010

~0b1010
1111 1111 1111 1111 1111 1111 1111 0101

= -1011
948デフォルトの名無しさん (ワッチョイ f12d-vQnI)
垢版 |
2019/12/28(土) 16:13:08.13ID:VPT4/FzX0
QiitaかHatenaでやれ
2019/12/28(土) 16:23:21.64ID:b3ohKRMf0
>>947
じゃ
1111 1111 1111 1111 1111 1111 1111 1111
を反転させると?
2019/12/28(土) 16:24:38.25ID:lWCFWx/Q0
0000 0000 0000 0000 0000 0000 0000 0000
2019/12/28(土) 16:38:44.50ID:b3ohKRMf0
>>950
残念!

pry> ? Integer#~
or
irb> help ‘Integer#~’
2019/12/28(土) 16:49:11.58ID:lWCFWx/Q0
>>951
今はintegerの話なんかしてない
2019/12/28(土) 17:59:01.86ID:TvplFsgk0
そうか
0b1010 = 0000 0000 0000 0000 0000 0000 0000 1010
~0b1010 =1111 1111 1111 1111 1111 1111 1111 0101
(足すと)= 1111 1111 1111 1111 1111 1111 1111 1111

これに0000*7 0001(10進数で1)を足すと0になるので補数表現で10進数における- 1
だから  0b1010 + ~0b1010 = - 1
~0b1010 = - 0b1010 - 1

0b1010は10進数で10なので~0b1010 = - 11
これを補数表現なしの2進数で表すと
~0b1010 = - 1011
よって一般に ~n = - n - 1 と言えるのか
2019/12/28(土) 18:00:57.41ID:TvplFsgk0
Rubyとは全く関係ない質問になって申し訳ない
2019/12/28(土) 20:50:34.75ID:q2Ylf9qja
有明セントラルタワー

痰吐きジジィのチンポが18階の(どこの島かは言わないよ)20代の女の娘のオマンコに
入って行くウゥウウウーーー!
http://o.5ch.net/1lejw.png
2019/12/28(土) 21:36:45.32ID:b3ohKRMf0
>>952
予想外の言い訳でワロタww
2019/12/28(土) 23:39:23.63ID:AcwxZTaB0
>>953
2補数の符号反転は
-n == ~n + 1
だから
~n == -n - 1
# 上だけ覚えれば十分
2019/12/28(土) 23:49:13.11ID:u9ordgE/0
補数表現には2の補数と1の補数があるって知らないのかな?
補数表現とだけじゃどちらかわからんだろ

それに反転はそのままビットを反転しただけのこと
これは1の補数表現と等しい
ビットを反転させるだけなんだからマイナスとか関係ない
マイナスが出てくるのは2の補数表現の話だけ
959デフォルトの名無しさん (アウアウエー Sa6a-v1fK)
垢版 |
2019/12/29(日) 00:43:56.25ID:jG5lme5Ea
どうせ知らないと思うけど
10の補数も9の補数も8の補数もあるぞ
960デフォルトの名無しさん (アウアウエー Sa6a-v1fK)
垢版 |
2019/12/29(日) 00:46:58.08ID:jG5lme5Ea
>マイナスが出てくるのは2の補数表現の話だけ

違う
それは君が2の補数の負数に慣れ過ぎてそう思ってるだけ
1の補数を負数とする定義も普通に存在する
2019/12/29(日) 01:30:36.45ID:KIjz0jVz0
1の補数・2の補数とかは、基本情報処理資格の初歩だろw

教科書を読め!
2019/12/29(日) 01:40:35.53ID:Q2ohrJia0
>>960
ふつうか?ホントか?
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況