■ このスレッドは過去ログ倉庫に格納されています
数学メモ(´・ω・`)
- 44 : :2017/11/20(月) 22:15:30.194 ID:IJKwX0peMHAPPY.net
- >>43
留年したくなひ(´;ω;`)
- 45 :以下、5ちゃんねるからVIPがお送りします:2017/11/20(月) 22:22:12.467 ID:BPs/3W630HAPPY.net
- 計算遅いのどうにかしたいです
- 46 : :2017/11/20(月) 22:23:12.563 ID:IJKwX0peMHAPPY.net
- >>45
出現頻度が高いものはある程度覚えてしまうのがいいと思います(´・ω・`)
- 47 :スクラッパー如月喫茶店 :2017/11/20(月) 22:25:02.640 ID:R0HrAoQ60HAPPY.net
- (⌒ ͜ ⌒)おじさんと遊ぼう?
- 48 : :2017/11/20(月) 22:26:51.646 ID:IJKwX0peMHAPPY.net
- >>47
(;´'-'`)キモい…(いやです)
- 49 :以下、5ちゃんねるからVIPがお送りします:2017/11/20(月) 22:32:17.571 ID:o1SM7I/G0HAPPY.net
- よしじゃあ
バイトオーダーを判定してリトルエンディアンに揃えるマクロ考えようか
- 50 : :2017/11/20(月) 22:34:17.493 ID:IJKwX0peMHAPPY.net
- >>49
阪大のひとだ…(´・ω・`)
バイトオーダー…(´・ω・`)?
- 51 : :2017/11/20(月) 22:35:20.522 ID:IJKwX0peMHAPPY.net
- ググってきますた(´・ω・`)
行けそうな気がする
- 52 :以下、5ちゃんねるからVIPがお送りします:2017/11/20(月) 22:39:25.686 ID:o1SM7I/G0HAPPY.net
- 可と不可のポイントは
1。現在の環境のデータのならびを判定する方法
2。判定後にバイト単位で反転する方法
この2点です。
その環境の基本となるint値を変換対象にしたらいいです
数学に疲れたときの一服の清涼剤にどうぞ
- 53 : :2017/11/20(月) 22:48:33.102 ID:IJKwX0peMHAPPY.net
- #FIX_ORDER(VAR)
{
unsigned int i=1;
if(!((char)i)){
char buf[sizeof(VAR)];
char* p=(char*)&VAR;
int i;
for(i=0;i<sizeof(VAR);++i)buf[i]=p[i];
for(i=0;i<sizeof(VAR);++i)p[i]=buf[sizeof(VAR)-i];
}
}
バックスラッシュ打つのめんどくて略!(´・ω・`)
- 54 :以下、5ちゃんねるからVIPがお送りします:2017/11/20(月) 22:48:50.654 ID:o1SM7I/G0HAPPY.net
- あと一応ビット演算の確認でもあるから
ループ文を使うことは可能なかぎり避けてほしい
- 55 :以下、5ちゃんねるからVIPがお送りします:2017/11/20(月) 22:49:11.253 ID:o1SM7I/G0HAPPY.net
- すまんおそかったw
- 56 : :2017/11/20(月) 22:50:43.799 ID:IJKwX0peMHAPPY.net
- あ、ミスってる(´・ω・`)
「sizeof(VAR)-i-1」に読み替えてくれ
- 57 : :2017/11/20(月) 22:51:14.167 ID:IJKwX0peMHAPPY.net
- >>54-55
ループなしで反転しろというのか…(´・ω・`)
- 58 : :2017/11/20(月) 23:02:51.095 ID:IJKwX0peMHAPPY.net
- 名前被ってるの今気づいたwwww
- 59 : :2017/11/20(月) 23:03:10.371 ID:IJKwX0peMHAPPY.net
- int k;にします(´;ω;`)
- 60 :スクラッパー如月喫茶店 :2017/11/20(月) 23:09:35.087 ID:R0HrAoQ60HAPPY.net
- (⌒ ͜ , ⌒)
- 61 : :2017/11/20(月) 23:09:53.341 ID:IJKwX0peMHAPPY.net
- 評価はありませんか(´・ω・`)
- 62 : :2017/11/20(月) 23:10:06.369 ID:IJKwX0peMHAPPY.net
- >>60
(;´'-'`)ウワァ
- 63 : :2017/11/20(月) 23:26:40.186 ID:IJKwX0peMHAPPY.net
- (´・ω・`)
- 64 :以下、5ちゃんねるからVIPがお送りします:2017/11/20(月) 23:27:20.680 ID:o1SM7I/G0HAPPY.net
- われながらガバガバの出題だなと思って
細かい条件確認するのに課題の原本さがしてたけどみつからん・・・w
- 65 : :2017/11/20(月) 23:29:08.281 ID:IJKwX0peMHAPPY.net
- >>64
そうか…(´・ω・`)
まぁでも一応アレで出来てると思うんだけどね
- 66 :以下、5ちゃんねるからVIPがお送りします:2017/11/20(月) 23:32:43.647 ID:o1SM7I/G0HAPPY.net
- ただマクロ指定ということは
なるべく新たな変数を使ってほしくないという出題意図があるのは汲んでほしい
C99から宣言がブロックの途中からできるとはいえ
それができない処理系も多いのでなるべくやらせたくないのよ
仕事なら全然OKの解答なんだけどね
- 67 : :2017/11/20(月) 23:37:20.320 ID:IJKwX0peMHAPPY.net
- >>66
新しい変数を使わないとなると、バイトオーダーの判定が難しくない?(´・ω・`)
そこはまぁ許容されるだろうけど、その他に変数を使わないで配列を逆の順番にするのはキツいな…
- 68 :以下、5ちゃんねるからVIPがお送りします:2017/11/20(月) 23:37:52.945 ID:o1SM7I/G0HAPPY.net
- すまん
いまいろいろ確認してる
wait a moment
- 69 : :2017/11/20(月) 23:38:15.717 ID:IJKwX0peMHAPPY.net
- >>68
おk(´・ω・`)
- 70 :以下、5ちゃんねるからVIPがお送りします:2017/11/20(月) 23:44:54.838 ID:o1SM7I/G0HAPPY.net
- 出題意図としてはこの辺の知識がモノにできてて
自由自在に駆使できるか確認したいのよ
#include <stdio.h>
int main(void) {
__uint32_t num = 0x12345678;
char *vec;
vec = (char *)#
printf ("%X\n", num);
printf ("%02X, %02X, %02X, %02X\n",
((char *)&num)[3], ((char *)&num)[2],
((char *)&num)[1], ((char *)&num)[0]);
printf("%02X, %02X, %02X, %02X\n",
((num>>24) & 0xFF),
((num>>16) & 0xFF),
((num>>8) & 0xFF),
((num) & 0xFF)
);
printf ("%X\n",
((__uint32_t)num)<<24 |
((__uint32_t)num)>>24 |
(num & (__uint32_t)0x0000ff00UL) << 8 |
(num & (__uint32_t)0x00ff0000UL) >> 8
);
return 0;
}
- 71 : :2017/11/20(月) 23:50:20.598 ID:IJKwX0peMHAPPY.net
- ビット演算ってシフトか(´・ω・`)
&とか排他的オアとかばっかり考えてたわ
- 72 : :2017/11/20(月) 23:50:38.278 ID:IJKwX0peMHAPPY.net
- 最後のprintf読みにくい…(´・ω・`)
- 73 :以下、5ちゃんねるからVIPがお送りします:2017/11/20(月) 23:55:10.678 ID:o1SM7I/G0HAPPY.net
- 桁移動して桁毎に値を浮き上がらせて結合って奴やな
反転例のひとつ
もちろん上2例を利用して桁移動して結合してもよし
- 74 : :2017/11/20(月) 23:58:04.978 ID:IJKwX0peMHAPPY.net
- なるほど理解した!(´・ω・`)
わざわざchar型にキャストしなくても行けたか
- 75 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 00:10:39.557 ID:0SjqCsch0.net
- バイトオーダー判定のところも新たな変数をわざわざ使う必要ないかな
printf ("%X\n", (((__uint32_t)0x01)>> 24));
定数からでもビルド環境のバイトオーダはわかる
STACKのメモリをみるかDATAのメモリをみるかの違いだけだし
- 76 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 00:20:50.028 ID:0SjqCsch0.net
- おっとCじゃダメだな
そもそもロード後の値に対する演算だったわw
>>75は忘れてちょ
アドレスから切らないとだめだから
保護モードある環境じゃ定数からは無理ぽ
- 77 :以下、5ちゃんねるからVIPがお送りします:2017/11/21(火) 00:35:00.375 ID:0SjqCsch0.net
- 案の定ここもアドレスから切らないとうまく判定できないな
if(!((char)i)){
〜
}
movl $1, -8(%ebp)
movl -8(%ebp), %eax
movsbl %al,%eax
subl $8, %esp
こうなるからメモリの判定にならない
あービッグエンディアンの環境家でも作っとくんだった
確認に時間かかる;;
総レス数 77
14 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200