2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

数学メモ(´・ω・`)

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 *)&num;


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