[過去ログ]
Rust part16 (1002レス)
Rust part16 http://mevius.5ch.net/test/read.cgi/tech/1656285423/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
627: デフォルトの名無しさん [sage] 2022/09/04(日) 14:45:48.94 ID:c9grlmUi VScodeがもっさりは感じたことないな ネイティブのVSのほうが重すぎ http://mevius.5ch.net/test/read.cgi/tech/1656285423/627
628: デフォルトの名無しさん [sage] 2022/09/05(月) 15:09:06.52 ID:LmWvGk9l 関数の入出力はu8だけど関数内の計算はi32で行いたい場合って普通どんな感じで書くの? http://mevius.5ch.net/test/read.cgi/tech/1656285423/628
629: デフォルトの名無しさん [sage] 2022/09/05(月) 15:19:35.29 ID:TAlRHagA そんなユースケースあるの? http://mevius.5ch.net/test/read.cgi/tech/1656285423/629
630: デフォルトの名無しさん [sage] 2022/09/05(月) 15:31:51.51 ID:TaR2CBOa >>629 隔離スレでドヤりたいというユースケース http://mevius.5ch.net/test/read.cgi/tech/1656285423/630
631: デフォルトの名無しさん [sage] 2022/09/05(月) 15:54:23.38 ID:vyOP5LW0 いつも隔離スレのここが機能してくれて助かってます http://mevius.5ch.net/test/read.cgi/tech/1656285423/631
632: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/09/05(月) 16:16:12.15 ID:QNR7HRCU >>628 一旦変換すりゃいいだけなんじゃないの。 知らんけど。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/632
633: 628 [sage] 2022/09/05(月) 17:50:42.31 ID:Y4+oTyIj 例えばこんなの fn func(x: u8, y: u8) -> u8 { let x32 = x as i32; let y32 = y as i32; let z32 = (((x32 - y32) * 170) >> 16) + y32; return z32 as u8; } 4行使うのは冗長かなーと思わなくもなく・・・ テンポラリ変数の名前を考えるのもちょっと面倒だし http://mevius.5ch.net/test/read.cgi/tech/1656285423/633
634: デフォルトの名無しさん [sage] 2022/09/05(月) 17:54:10.85 ID:vXwuqGKm >>633 シャドーイングできるからテンポラリの変数名は不要だよ let x = x as u32; でいい http://mevius.5ch.net/test/read.cgi/tech/1656285423/634
635: デフォルトの名無しさん [sage] 2022/09/05(月) 19:20:47.36 ID:g3RfqaIY >>633 行数短くしたいだけなら fn func(x: u8, y: u8) -> u8 { let (x, y) = (x as u8, y as u8); (((x - y) * 170) >> 16) + y) as u8 } とは書けるけどやってることは全く同じだしこれで期待に応えられてるかは分からん http://mevius.5ch.net/test/read.cgi/tech/1656285423/635
636: デフォルトの名無しさん [sage] 2022/09/05(月) 19:21:35.07 ID:g3RfqaIY >>635 2行目間違えた as i32 に読み替えて http://mevius.5ch.net/test/read.cgi/tech/1656285423/636
637: デフォルトの名無しさん [sage] 2022/09/05(月) 21:29:56.32 ID:wI2HBmBd >>633 その例は手動で最適化すると fn func(_x: u8, y: u8) -> u8 { y } それはともかく 行数を節約したいという間違った価値観を捨てることをおすすめ http://mevius.5ch.net/test/read.cgi/tech/1656285423/637
638: デフォルトの名無しさん [sage] 2022/09/05(月) 21:38:39.53 ID:F/g4kaon x < y の場合考慮してなさそう http://mevius.5ch.net/test/read.cgi/tech/1656285423/638
639: デフォルトの名無しさん [sage] 2022/09/05(月) 21:53:26.61 ID:wI2HBmBd ホントだごめん訂正 fn func(x: u8, y: u8) -> u8 { y - (x < y) as u8 } http://mevius.5ch.net/test/read.cgi/tech/1656285423/639
640: デフォルトの名無しさん [sage] 2022/09/06(火) 00:31:42.49 ID:EiVnVIDc 結局u8で返すなら 途中でi32使わずとも 工夫するとu8のままだけで算出できちゃったりするわけか http://mevius.5ch.net/test/read.cgi/tech/1656285423/640
641: デフォルトの名無しさん [sage] 2022/09/06(火) 00:52:56.28 ID:uJFa29+7 逆方向にシフトした場合は? そんな用途があるのか知らんけど http://mevius.5ch.net/test/read.cgi/tech/1656285423/641
642: デフォルトの名無しさん [sage] 2022/09/06(火) 01:12:27.41 ID:EiVnVIDc >>641 それはu8部分の下位8bitが常にゼロとなって 足しても引いても影響ないかな http://mevius.5ch.net/test/read.cgi/tech/1656285423/642
643: 628 [sage] 2022/09/06(火) 11:02:40.94 ID:xGSGq1SQ スタンダードな書き方みたいなのはないのかな なら>>634で行こうと思います あと>>633は右シフトを間違えていました 16ではなく8です http://mevius.5ch.net/test/read.cgi/tech/1656285423/643
644: デフォルトの名無しさん [sage] 2022/09/07(水) 08:11:56.26 ID:8saglJYc Rustのバイトオーダーってそのターゲットのネイティブ(x64ならリトルエンディアン)で良いの? http://mevius.5ch.net/test/read.cgi/tech/1656285423/644
645: デフォルトの名無しさん [sage] 2022/09/07(水) 08:24:04.31 ID:41cUJGIp もちろん そして依存しないよう3種類用意されてる assert_eq!(0x01020304, u32::from_be_bytes([1, 2, 3, 4])); // big endian assert_eq!(0x04030201, u32::from_le_bytes([1, 2, 3, 4])); // little endian assert_eq!(XXX, u32::from_ne_bytes([1, 2, 3, 4])); // native endian http://mevius.5ch.net/test/read.cgi/tech/1656285423/645
646: デフォルトの名無しさん [] 2022/09/07(水) 23:31:51.68 ID:qqHULq33 native endianというのは初めて聞いたのですが、これはどういうものなのですか? http://mevius.5ch.net/test/read.cgi/tech/1656285423/646
647: デフォルトの名無しさん [] 2022/09/07(水) 23:54:21.35 ID:En8I5Kb5 この場合 >>644も書いているようにコンパイルターゲット環境のエンディアンのこと 特にターゲット指定がなければ自分の使っているPC環境で通常はx64などlittle endianになりますが そこでleと指定してはダメで環境に応じて適切に対応させるためにneを使います 一方でAPIなどでエンディアンが指定されてる時は指定通りbeかleを使います http://mevius.5ch.net/test/read.cgi/tech/1656285423/647
648: デフォルトの名無しさん [sage] 2022/09/08(木) 00:04:41.95 ID:nmwPOGZ0 >>645 サンクス。u32とかにはfrom_leとかあるみたいですね。こっちの方が使う機会は多そう デフォルトのバイトオーダーを変更したり、変数やフィールド単位でバイトオーダーを設定する みたいな芸当は流石に無理なのかな・・・ググったけどそれっぽい情報は見つけられなかった http://mevius.5ch.net/test/read.cgi/tech/1656285423/648
649: デフォルトの名無しさん [sage] 2022/09/08(木) 00:19:17.65 ID:8UoQH6yi >>648 操作に最適なバイトオーダーは使用CPUで決まるネイティブエンディアン だから原則としてネイティブエンディアンのみでプログラミングする 例外として外部とのやりとりなどエンディアン指定がある時はその境界で変換 http://mevius.5ch.net/test/read.cgi/tech/1656285423/649
650: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/09/08(木) 00:23:28.76 ID:MG9wnc1h >>648 内部的に色々な表現を有りということにするならやりたい操作を個別に定義するしかないよ。 でも普通はそんな煩雑なことをしたくないから 内部的には一環した表現を使って必要な変換は入出力のみというのが一般的な構成だし、 言語やライブラリも基本的には一般的な構成に倣っている。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/650
651: デフォルトの名無しさん [sage] 2022/09/08(木) 01:11:28.44 ID:U6/gufpm >>648 変数やフィールドのメモリ上の表現が特定のエンディアンにしたいのであれば、 #[repr(C)] struct BeU32([u8; 4]); みたいな構造体を用意して impl Be32 { fn get(&self) -> u32 { u32::from_be_bytes(self.0) } fn ser (&mut self, v: u32) { self.0 = v.to_be_bytes(); } } こういうアクセサを実装すれば良いかと 何の役に立つのかはよくわからないけど、特定のエンディアンでシリアライズされたデータにそのままアクセスしたい場合とかに便利なのかな
http://mevius.5ch.net/test/read.cgi/tech/1656285423/651
652: デフォルトの名無しさん [sage] 2022/09/08(木) 01:21:33.97 ID:5HeI/FQK mansplainers http://mevius.5ch.net/test/read.cgi/tech/1656285423/652
653: デフォルトの名無しさん [] 2022/09/08(木) 15:55:57.30 ID:Vswe11EN RustをOpenMPIに対応させるようなプロジェクトってありますか? http://mevius.5ch.net/test/read.cgi/tech/1656285423/653
654: デフォルトの名無しさん [sage] 2022/09/08(木) 16:49:24.48 ID:mLv3aAxt 「Rust OpenMPI」でGoogle検索 http://mevius.5ch.net/test/read.cgi/tech/1656285423/654
655: デフォルトの名無しさん [sage] 2022/09/08(木) 18:02:42.70 ID:U6/gufpm OpenMP なのか Open MPI なのかどっち http://mevius.5ch.net/test/read.cgi/tech/1656285423/655
656: デフォルトの名無しさん [] 2022/09/08(木) 20:45:38.87 ID:Vswe11EN 知りたいのはOpenMPIの方です ググるとOpenMPIとOpenMPを勘違いしたと思われるRayonを紹介する記事が出てきたり、OpenMPがらみのサイトが出てきたり、なかなか状況が分かりません・・・・ http://mevius.5ch.net/test/read.cgi/tech/1656285423/656
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 346 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s