7行×79文字なら言語は問いません。
過去作品は、もしかしたら>>2-10あたりに。
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1142467359/
part4
http://pc8.2ch.net/test/read.cgi/tech/1051703369/
part 3
http://pc2.2ch.net/tech/kako/1033/10331/1033143528.html
part 2
http://pc3.2ch.net/tech/kako/1018/10188/1018840143.html
part 1
http://pc.2ch.net/tech/kako/984/984182993.html
探検
七行プログラミング part6
■ このスレッドは過去ログ倉庫に格納されています
2008/07/06(日) 23:00:49
2008/07/06(日) 23:12:00
>>1乙
2008/07/06(日) 23:20:55
>>1乙
2008/07/06(日) 23:26:19
2008/07/07(月) 13:42:19
↓7行で乙
6デフォルトの名無しさん
2008/07/07(月) 19:05:55 print'''■■■■■■■__
_____■___
___■■____
_■■______
■_______■
■_______■
_■■■■■■■_'''
_____■___
___■■____
_■■______
■_______■
■_______■
_■■■■■■■_'''
7デフォルトの名無しさん
2008/07/07(月) 19:51:21 g=:(],],.])^:[(' '(<2 1)}]\4$' *')"_
シェルピンスキーのギャスケット in J
シェルピンスキーのギャスケット in J
2008/07/07(月) 19:59:15
alert('\u003e\u003e\u0031\u000a\u4E59')
2008/07/07(月) 21:10:27
<body id=D onkeydown=K=event.keyCode-38 onload="Z=X=[B=A=12];function Y(){for(C
=[q=c=i=4];f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6?h
+=K:t?B=C:0;i=K=q--;f+=Z[A+p])k=X[p=h+B[q]]=1;h+=A;if(f|B)for(Z=X,X=[l=228],B=[
[-7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P+=
k++,c=l+=A);--c>A;)Z[c]=Z[c-A];for(S=P;i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228)
?'':'Q')i%A||(S+='\n');D.innerText=S;Z[5]||setTimeout(Y,i-P)}Y(h=K=t=P=0)">
=[q=c=i=4];f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6?h
+=K:t?B=C:0;i=K=q--;f+=Z[A+p])k=X[p=h+B[q]]=1;h+=A;if(f|B)for(Z=X,X=[l=228],B=[
[-7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P+=
k++,c=l+=A);--c>A;)Z[c]=Z[c-A];for(S=P;i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228)
?'':'Q')i%A||(S+='\n');D.innerText=S;Z[5]||setTimeout(Y,i-P)}Y(h=K=t=P=0)">
2008/07/07(月) 21:37:11
B=:'0123456789+/',~a.{~,(a.i.'Aa')+/i.26
enc=:3 :'(B{~#._6[\,(8#2)#:a.i.y),(0 2 1 i.3|#y)#''='''
dec=:3 :'(a.{~#._8[\,(6#2)#:B i.y)}.~_2>.(i.&''=''-#)y'
BASE64エンコード&デコード in J
enc=:3 :'(B{~#._6[\,(8#2)#:a.i.y),(0 2 1 i.3|#y)#''='''
dec=:3 :'(a.{~#._8[\,(6#2)#:B i.y)}.~_2>.(i.&''=''-#)y'
BASE64エンコード&デコード in J
2008/07/07(月) 22:06:01
>>9
なにこれ
なにこれ
2008/07/07(月) 22:09:14
前スレで7行ASMってネタ出てたけど、実際どこまで出来るものかな?
13デフォルトの名無しさん
2008/07/07(月) 22:33:45 org 100h
mov ah,9
mov dx,msg
int 21h
mov ax,4c00h
int 21h
msg db "Hello, world!$"
7行でHello, world!
mov ah,9
mov dx,msg
int 21h
mov ax,4c00h
int 21h
msg db "Hello, world!$"
7行でHello, world!
2008/07/07(月) 22:39:18
アセンブリはCPUやコンパイラやOSによってかなり依存するからなぁ
>>13はx86/DOS/NASMか
>>13はx86/DOS/NASMか
15。
2008/07/07(月) 23:00:18 http://codepad.org/LN7ZIsBO
↑こういうコードがかけるらしい。qsortの第4引数が
int strcmp(const char**a, const char**b) {
while(**a == **b) {
if(**a == '\0')
return 0;
(*a)++; (*b)++;
}
return **a - **b;
}
をコンパイルしたコードだとか。C言語で無名関数を渡す方法は他にもあるのかな?
こういうのもゴルフのテクニックのひとつ?
↑こういうコードがかけるらしい。qsortの第4引数が
int strcmp(const char**a, const char**b) {
while(**a == **b) {
if(**a == '\0')
return 0;
(*a)++; (*b)++;
}
return **a - **b;
}
をコンパイルしたコードだとか。C言語で無名関数を渡す方法は他にもあるのかな?
こういうのもゴルフのテクニックのひとつ?
2008/07/08(火) 00:03:40
2008/07/08(火) 01:09:18
もう機械語でいいじゃん
2008/07/08(火) 01:17:39
短くならなくね?
2008/07/08(火) 02:31:19
diffとpatchコマンドをそれぞれWin32用に7行でってのは既出ネタかな。
もしまだだったら面白そうだからやってみようと思ってたり。
暇な人用仕様を念のため。
・Cベースのパッチ作成&適用ツール
・差分ファイルのフォーマットは自由。7行diffで書き出した差分ファイルで7行patchが正常に動けばOK。
・テキスト関連の機能はなし。あくまでも差分書き出しと差分適用に限定。
・ディレクトリ差分、複数ファイルの差分をひとつの差分ファイルにまとめる機能も省略。
差分作成:diff.exe old.exe new.exe update.diff
差分適用:patch.exe old.exe update.diff
このネタのミソは、いかに差分を小さくする工夫があるか(同一パターンの発見精度の高さ)だよなぁ
もしまだだったら面白そうだからやってみようと思ってたり。
暇な人用仕様を念のため。
・Cベースのパッチ作成&適用ツール
・差分ファイルのフォーマットは自由。7行diffで書き出した差分ファイルで7行patchが正常に動けばOK。
・テキスト関連の機能はなし。あくまでも差分書き出しと差分適用に限定。
・ディレクトリ差分、複数ファイルの差分をひとつの差分ファイルにまとめる機能も省略。
差分作成:diff.exe old.exe new.exe update.diff
差分適用:patch.exe old.exe update.diff
このネタのミソは、いかに差分を小さくする工夫があるか(同一パターンの発見精度の高さ)だよなぁ
2008/07/08(火) 03:50:25
ん?
/*diff.c*/
#include<windows.h>
main(int c,char**v){CopyFile(v[2],v[3],1);}
/*patch.c*/
#include<windows.h>
main(int c,char**v){CopyFile(v[2],v[1],0);}
/*diff.c*/
#include<windows.h>
main(int c,char**v){CopyFile(v[2],v[3],1);}
/*patch.c*/
#include<windows.h>
main(int c,char**v){CopyFile(v[2],v[1],0);}
2008/07/08(火) 03:56:57
それは無関係なファイルも上書きしてしまうからパッチになってない。
22。
2008/07/08(火) 04:16:16 http://codepad.org/xZjkIm7R
asmも使えることを確認した。実行環境依存のものだけはここで通るように条件つけたら?
asmも使えることを確認した。実行環境依存のものだけはここで通るように条件つけたら?
2008/07/08(火) 04:37:10
なんで特定のOSや特定のCPUに限定する必要があるのか理解できん
24。
2008/07/08(火) 04:38:342008/07/08(火) 04:43:33
unix板でも篭ってれば見なくて済むよ。
2008/07/08(火) 04:46:35
アドバイスしただけ
29。
2008/07/08(火) 04:48:59 とてもそういう風には読めないね。
2008/07/08(火) 04:56:32
文章力がないだけだな
2008/07/08(火) 05:32:50
反論できなくなったら「氏ね」か。
頭のほどが知れるわ
頭のほどが知れるわ
33。
2008/07/08(火) 05:51:27 / \ /\ キリッ
. / (ー) (ー)\ "反論できなくなったら「氏ね」か。"
/ ⌒(__人__)⌒ \ "頭のほどが知れるわ "
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
____
/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ だっておー!!!
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / //
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー'´ ヽ / /
| | l||l 从人 l||l l||l 从人 l||l
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
. / (ー) (ー)\ "反論できなくなったら「氏ね」か。"
/ ⌒(__人__)⌒ \ "頭のほどが知れるわ "
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
____
/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ だっておー!!!
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / //
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー'´ ヽ / /
| | l||l 从人 l||l l||l 从人 l||l
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
34デフォルトの名無しさん
2008/07/08(火) 09:25:15 言っとくけど俺をあまりナメないほうがいいよ
vipでコテハンやってるしこのスレ潰すくらいの影響力は持ってるから
くだらないことで刺激して後悔しないようにね
vipでコテハンやってるしこのスレ潰すくらいの影響力は持ってるから
くだらないことで刺激して後悔しないようにね
2008/07/08(火) 10:17:01
>>9は正しくはこうだな
<body id=D onkeydown=K=event.keyCode-38 onload="Z=X=[B=A=12];function Y(){for(C
=[q=c=i=4];f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6?h
+=K:t?B=C:0;i=K=q--;f+=Z[A+p])k=X[p=h+B[q]]=1;h+=A;if(f|B)for(Z=X,X=[l=228],B=[
[-7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P+=
k++,c=l+=A);--c>A;)Z[c]=Z[c-A];for(S=P;i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228)
?'■':'_')i%A||(S+='\n');D.innerText=S;Z[5]||setTimeout(Y,i-P)}Y(h=K=t=P=0)">
<body id=D onkeydown=K=event.keyCode-38 onload="Z=X=[B=A=12];function Y(){for(C
=[q=c=i=4];f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6?h
+=K:t?B=C:0;i=K=q--;f+=Z[A+p])k=X[p=h+B[q]]=1;h+=A;if(f|B)for(Z=X,X=[l=228],B=[
[-7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P+=
k++,c=l+=A);--c>A;)Z[c]=Z[c-A];for(S=P;i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228)
?'■':'_')i%A||(S+='\n');D.innerText=S;Z[5]||setTimeout(Y,i-P)}Y(h=K=t=P=0)">
2008/07/08(火) 10:40:37
>>34
無関係の人間まで巻き込まないでね
無関係の人間まで巻き込まないでね
2008/07/08(火) 10:42:37
/ \ /\ キリッ
. / (ー) (ー)\ "vipでコテハンやってるし"
/ ⌒(__人__)⌒ \
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
____
/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ だっておー!!!
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / //
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー'´ ヽ / /
| | l||l 从人 l||l l||l 从人 l||l
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
. / (ー) (ー)\ "vipでコテハンやってるし"
/ ⌒(__人__)⌒ \
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
____
/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ だっておー!!!
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / //
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー'´ ヽ / /
| | l||l 从人 l||l l||l 从人 l||l
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
2008/07/08(火) 11:19:34
専ブラ用あぼ〜ん条件を正規表現で79*7バイトで書いたら、
そこそこ強力なフィルタが書けそうだな
そこそこ強力なフィルタが書けそうだな
2008/07/08(火) 11:19:53
たしかにwindows.hが続いてたとき
環境依存うぜーって話はなかったのに、
それ以外の時は出るんだよな。
winユーザーが多いのは認めるが、それでも環境依存って
ことには代わりはないとは思うがね
環境依存うぜーって話はなかったのに、
それ以外の時は出るんだよな。
winユーザーが多いのは認めるが、それでも環境依存って
ことには代わりはないとは思うがね
2008/07/08(火) 11:42:55
>>39
俺は環境依存はそんなに気にならないかな。
特定の環境でしか動かないソースってのは「ハードルを下げたら
ここまでジャンプして越えることが出来たよ」って言ってるようなもんだから、
依存しようとしてなかろうと作者の工夫次第と思ってる。
# 別にwindows.hを使うのが幼稚だと言ってるワケじゃないからあしからず ;-)
環境依存は少ないほうが好みだけど、ライン引きが難しいから
「標準出力がゲーム機で動かないじゃないか」というツッコミまで許すことになりそうで怖い。
俺は環境依存はそんなに気にならないかな。
特定の環境でしか動かないソースってのは「ハードルを下げたら
ここまでジャンプして越えることが出来たよ」って言ってるようなもんだから、
依存しようとしてなかろうと作者の工夫次第と思ってる。
# 別にwindows.hを使うのが幼稚だと言ってるワケじゃないからあしからず ;-)
環境依存は少ないほうが好みだけど、ライン引きが難しいから
「標準出力がゲーム機で動かないじゃないか」というツッコミまで許すことになりそうで怖い。
2008/07/08(火) 11:47:02
>>40
s/標準出力が/標準出力がない/
s/標準出力が/標準出力がない/
2008/07/08(火) 13:42:14
FirefoxでBase64エンデコード
<p id=B></p><textarea cols=64 rows=8 onblur=B.innerHTML=/[^+/-9A-Z]/i.test(v=value)?btoa(unescape(encodeURI(v))):decodeURIComponent(escape(atob(v)))>
<p id=B></p><textarea cols=64 rows=8 onblur=B.innerHTML=/[^+/-9A-Z]/i.test(v=value)?btoa(unescape(encodeURI(v))):decodeURIComponent(escape(atob(v)))>
2008/07/08(火) 16:47:53
>>39
標準Cにない機能を使うための止むを得ない環境依存と、
字数を減らすためだけの"馴れ馴れしい"環境依存の違いだと思うよ(後者が悪いとは言わない)。
音を鳴らすという課題なら、windows.hなりXlib.hなり#includeしないわけには行かないだろう。
もちろん79x7の範囲でクロスプラットフォームにできれば言うことはないw
標準Cにない機能を使うための止むを得ない環境依存と、
字数を減らすためだけの"馴れ馴れしい"環境依存の違いだと思うよ(後者が悪いとは言わない)。
音を鳴らすという課題なら、windows.hなりXlib.hなり#includeしないわけには行かないだろう。
もちろん79x7の範囲でクロスプラットフォームにできれば言うことはないw
2008/07/08(火) 17:44:28
少なくとも前スレのwindows.hのやつはstdio.h使わずにprintfしてたと思うがね
なぜそこに突っ込まないのか…‥ もしかしてwindows.hにprintfがあるのか?
なぜそこに突っ込まないのか…‥ もしかしてwindows.hにprintfがあるのか?
2008/07/08(火) 17:47:53
それはwindows.hうんぬんの話ではなくて、コンパイラ依存になるってのが論点になるよ・・・
2008/07/08(火) 17:59:35
なんでもありでいいじゃない
(面白|凄)ければ評価されるだろうし、逆も然り。
納得できないコードだったら自分で直して投下すればいい
コードで語ろうぜ
(面白|凄)ければ評価されるだろうし、逆も然り。
納得できないコードだったら自分で直して投下すればいい
コードで語ろうぜ
2008/07/08(火) 18:02:45
>>44
そんなんあったっけ。気づかんかった
そんなんあったっけ。気づかんかった
2008/07/08(火) 18:04:39
printfだけなら、stdio.hつかわないでもプロトタイプ宣言してやればいい。
2008/07/08(火) 18:55:06
っていうかインクルードファイル内でprintf使ってれば当然宣言済みなんじゃないのか?
前スレで7行ライブラリの話が出てたのを皆忘れてしまったのだろうか?
前スレで7行ライブラリの話が出てたのを皆忘れてしまったのだろうか?
2008/07/08(火) 19:03:24
どのインクルードファイルがprintf使ってるんだ。
2008/07/08(火) 19:44:12
調べといてよ。
とりあえず、インクルード内でstdio.h含めインクルードしてるのはよくあるんじゃないか?
よく移植の時に重複定義で悩ませられるような。
とりあえず、インクルード内でstdio.h含めインクルードしてるのはよくあるんじゃないか?
よく移植の時に重複定義で悩ませられるような。
2008/07/08(火) 20:17:33
重複定義で悩ませられるってなんだよそれ。
標準ライブラリのヘッダがインクルードガードしてないわけがないじゃん。
標準ライブラリのヘッダがインクルードガードしてないわけがないじゃん。
2008/07/08(火) 21:21:15
2008/07/08(火) 21:28:36
言ってることが分からん。
多いのは問題ないが、足りないのは問題だろ。
多いのは問題ないが、足りないのは問題だろ。
2008/07/08(火) 21:49:46
多くたって問題だからガードするんだろ?
問題だったら省略されるわけないんだから、多少忘れたって足りない問題は起きない。
問題だったら省略されるわけないんだから、多少忘れたって足りない問題は起きない。
2008/07/08(火) 21:51:03
標準ライブラリでガードされてないなんて、どこの標準非準拠処理系だよ
2008/07/08(火) 21:57:55
だから、ガードを前提にそこら中でインクルードしまくられてるんだから
どっかでインクルードされてりゃ問題ないだろって話。
どっかでインクルードされてりゃ問題ないだろって話。
2008/07/08(火) 21:59:13
どっかってどこだよ。
2008/07/08(火) 22:04:44
そもそも他でインクルードされてなきゃ、ガードなんて無駄なだけじゃないか。
2008/07/08(火) 22:08:26
>>39-59
7行でおk
7行でおk
2008/07/08(火) 22:11:38
全く話がかみ合ってないからもうやめろよ
2008/07/09(水) 00:12:38
#include<stdio.h>/*第一引数のファイル名を検索*/
#include<dirent.h>/*bcc限定かも……*/
char*f,r[4]="B:";void _(char*v){DIR*d;struct dirent*e;int c=0,i;char b[512];A:
if(!(d=opendir(strcmp(v,"C:")?v:"\\")))return;if(c)for(i=0;i<c;i++)readdir(d);B
:while(c++,e=readdir(d)){if(*e->d_name=='.')goto B;sprintf(b,"%s\\%s",v,e->
d_name);if(fclose(fopen(b,"r"))?closedir(d),_(b),1:strcmp(f,e->d_name)?0:puts(v
))goto A;}}main(int c,char**v){if(c==2){f=v[1];for(;r[0]++-75;)_(r);}return 0;}
#include<dirent.h>/*bcc限定かも……*/
char*f,r[4]="B:";void _(char*v){DIR*d;struct dirent*e;int c=0,i;char b[512];A:
if(!(d=opendir(strcmp(v,"C:")?v:"\\")))return;if(c)for(i=0;i<c;i++)readdir(d);B
:while(c++,e=readdir(d)){if(*e->d_name=='.')goto B;sprintf(b,"%s\\%s",v,e->
d_name);if(fclose(fopen(b,"r"))?closedir(d),_(b),1:strcmp(f,e->d_name)?0:puts(v
))goto A;}}main(int c,char**v){if(c==2){f=v[1];for(;r[0]++-75;)_(r);}return 0;}
2008/07/09(水) 18:16:44
っ 七行クロンダイク
64デフォルトの名無しさん
2008/07/09(水) 20:29:09 #include<stdio.h>
*s,*d;main(int c,char**v){long W,H,*t,x,y=0,a;unsigned char h[54],f[3];s=fopen(
v[1],"rb");d=fopen(v[2],"wb");fread(h,1,54,s);W=*(t=(long*)&h[18]);H=*(t+1);a=4
-W*3%4;fwrite(h,1,54,d);for(;y++<H;){for(x=0;x++<W;)fread(h,1,3,s),f[0]=f[1]=f[
2]=77*h[2]+150*h[1]+29*h[0]>>8,fwrite(f,1,3,d);a-4?fread(h,1,a,s):0;}}
bmp形式の画像(24bit限定)をグレイスケールに変換
一応4ビット境界にも対応させてある
*s,*d;main(int c,char**v){long W,H,*t,x,y=0,a;unsigned char h[54],f[3];s=fopen(
v[1],"rb");d=fopen(v[2],"wb");fread(h,1,54,s);W=*(t=(long*)&h[18]);H=*(t+1);a=4
-W*3%4;fwrite(h,1,54,d);for(;y++<H;){for(x=0;x++<W;)fread(h,1,3,s),f[0]=f[1]=f[
2]=77*h[2]+150*h[1]+29*h[0]>>8,fwrite(f,1,3,d);a-4?fread(h,1,a,s):0;}}
bmp形式の画像(24bit限定)をグレイスケールに変換
一応4ビット境界にも対応させてある
6564
2008/07/09(水) 21:48:21 訂正
×4ビット境界
○4バイト境界
×4ビット境界
○4バイト境界
2008/07/09(水) 22:09:25
こんなに可読性の低いコード書いてて恥ずかしくないの?
2008/07/09(水) 22:22:25
2008/07/09(水) 22:31:37
>>64
* main(c,v)char**v{って書くのが一番短いよ。
* yはグローバル変数にすれば初期化は不要だよ。
* H=*++t;とすればちょっと得するよ。
* (ANSI C) *s,*d;のように型無しで変数を定義するのは認められてないよ。
* main(c,v)char**v{って書くのが一番短いよ。
* yはグローバル変数にすれば初期化は不要だよ。
* H=*++t;とすればちょっと得するよ。
* (ANSI C) *s,*d;のように型無しで変数を定義するのは認められてないよ。
69デフォルトの名無しさん
2008/07/09(水) 22:40:53 #include<stdio.h>
int*s,*d,y;main(c,v)char**v;{long W,H,*t,x,a;unsigned char h[54],f[3];s=fopen(v
[1],"rb");d=fopen(v[2],"wb");fread(h,1,54,s);W=*(t=(long*)&h[18]);H=*++t;a=4-W*
3%4;fwrite(h,1,54,d);for(;y++<H;){for(x=0;x++<W;)fread(h,1,3,s),f[0]=f[1]=f[2]=
77*h[2]+150*h[1]+29*h[0]>>8,fwrite(f,1,3,d);a-4?fread(h,1,a,s):0;}}
こんな感じかな
int*s,*d,y;main(c,v)char**v;{long W,H,*t,x,a;unsigned char h[54],f[3];s=fopen(v
[1],"rb");d=fopen(v[2],"wb");fread(h,1,54,s);W=*(t=(long*)&h[18]);H=*++t;a=4-W*
3%4;fwrite(h,1,54,d);for(;y++<H;){for(x=0;x++<W;)fread(h,1,3,s),f[0]=f[1]=f[2]=
77*h[2]+150*h[1]+29*h[0]>>8,fwrite(f,1,3,d);a-4?fread(h,1,a,s):0;}}
こんな感じかな
2008/07/09(水) 22:54:44
for(;y++<H;)は{ }がいらないと思う
あとその次のforは第3項をうまく使えば , が一つ消せそうな
freadが3つあるのが気になるけどCだから関数を文字でおく
とかはできないんだよな
あとその次のforは第3項をうまく使えば , が一つ消せそうな
freadが3つあるのが気になるけどCだから関数を文字でおく
とかはできないんだよな
2008/07/09(水) 23:09:46
こんなもんか
#include<stdio.h>
int*s,*d,y;main(c,v)char**v;{long W,H,*t,a;unsigned char h[54],f[3];fread(h,1,
54,s=fopen(v[1],"rb"));W=*(t=(long*)&h[18]);a=4-W*3%4;fwrite(h,1,54,d=fopen(v[2
],"wb"));++t;for(;y++<*t;a-4&&fread(h,1,a,s))for(c=W;c--;fwrite(f,1,3,d))fread(
h,1,3,s),f[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
#include<stdio.h>
int*s,*d,y;main(c,v)char**v;{long W,H,*t,a;unsigned char h[54],f[3];fread(h,1,
54,s=fopen(v[1],"rb"));W=*(t=(long*)&h[18]);a=4-W*3%4;fwrite(h,1,54,d=fopen(v[2
],"wb"));++t;for(;y++<*t;a-4&&fread(h,1,a,s))for(c=W;c--;fwrite(f,1,3,d))fread(
h,1,3,s),f[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
2008/07/09(水) 23:11:07
#include<stdio.h>
int*s,*d,y;main(c,v)char**v;{long W,H,*t,x,a;unsigned char h[54],f[3];s=fopen(v
[1],"rb");d=fopen(v[2],"wb");fread(h,1,54,s);W=*(t=(long*)&h[18]);H=*++t;a=4-W*
3%4;fwrite(h,1,54,d);for(;y++<H;){for(x=0;x++<W;)fread(h,1,3,s),f[0]=f[1]=f[2]=
77*h[2]+150*h[1]+29*h[0]>>8,fwrite(f,1,3,d);a-4?fread(h,1,a,s):0;}}
int*s,*d,y;main(c,v)char**v;{long W,H,*t,x,a;unsigned char h[54],f[3];s=fopen(v
[1],"rb");d=fopen(v[2],"wb");fread(h,1,54,s);W=*(t=(long*)&h[18]);H=*++t;a=4-W*
3%4;fwrite(h,1,54,d);for(;y++<H;){for(x=0;x++<W;)fread(h,1,3,s),f[0]=f[1]=f[2]=
77*h[2]+150*h[1]+29*h[0]>>8,fwrite(f,1,3,d);a-4?fread(h,1,a,s):0;}}
7372
2008/07/09(水) 23:12:24 誤爆した上に負けてる…
#include<stdio.h>
int*s,*d,y;main(c,v)char**v{long W,H,*t,x,a;unsigned char h[54],f[3];s=fopen(v[
1],"rb");d=fopen(v[2],"wb");for(fread(h,1,54,s),W=*(t=(long*)&h[18]),H=*++t,a=4
-W*3%4,fwrite(h,1,54,d);y++<H;a-4?fread(h,1,a,s):0)for(x=0;x++<W;fwrite(f,1,3,d
))fread(h,1,3,s),f[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
#include<stdio.h>
int*s,*d,y;main(c,v)char**v{long W,H,*t,x,a;unsigned char h[54],f[3];s=fopen(v[
1],"rb");d=fopen(v[2],"wb");for(fread(h,1,54,s),W=*(t=(long*)&h[18]),H=*++t,a=4
-W*3%4,fwrite(h,1,54,d);y++<H;a-4?fread(h,1,a,s):0)for(x=0;x++<W;fwrite(f,1,3,d
))fread(h,1,3,s),f[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
7471
2008/07/09(水) 23:13:40 こんなもんかと思ったけどWはlongだったんだな
7572
2008/07/09(水) 23:17:19 あーそうかCでも&&は左から評価なのか
勉強になった
勉強になった
2008/07/09(水) 23:17:48
7771
2008/07/09(水) 23:20:19 #include<stdio.h>
int*s,*d,y;main(c,v)char**v;{long W,*t,x,a;unsigned char h[54],f[3];fread(h,1,
54,s=fopen(v[1],"rb"));W=*(t=(long*)&h[18]);a=4-W*3%4;fwrite(h,1,54,d=fopen(v[2
],"wb"));++t;for(;y++<*t;a-4&&fread(h,1,a,s))for(x=W;x--;fwrite(f,1,3,d))fread(
h,1,3,s),f[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
これならいいか
int*s,*d,y;main(c,v)char**v;{long W,*t,x,a;unsigned char h[54],f[3];fread(h,1,
54,s=fopen(v[1],"rb"));W=*(t=(long*)&h[18]);a=4-W*3%4;fwrite(h,1,54,d=fopen(v[2
],"wb"));++t;for(;y++<*t;a-4&&fread(h,1,a,s))for(x=W;x--;fwrite(f,1,3,d))fread(
h,1,3,s),f[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
これならいいか
2008/07/09(水) 23:21:05
yもいつのまにかintにされてるんだが。
2008/07/09(水) 23:29:28
>>77>>78
じゃあyもlongにして、あとtも消せる?
#include<stdio.h>
int*s,*d;main(c,v)char**v;{long W,x,y,a;unsigned char h[54],f[3];for(fread(h,1,
54,s=fopen(v[1],"rb")),W=*(long*)&h[18],fwrite(h,1,54,d=fopen(v[2],"wb")),a=4-W
*3%4;y++<*++&W;a-4&&fread(h,1,a,s))for(x=W;x--;fwrite(f,1,3,d))fread(h,1,3,s),f
[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
じゃあyもlongにして、あとtも消せる?
#include<stdio.h>
int*s,*d;main(c,v)char**v;{long W,x,y,a;unsigned char h[54],f[3];for(fread(h,1,
54,s=fopen(v[1],"rb")),W=*(long*)&h[18],fwrite(h,1,54,d=fopen(v[2],"wb")),a=4-W
*3%4;y++<*++&W;a-4&&fread(h,1,a,s))for(x=W;x--;fwrite(f,1,3,d))fread(h,1,3,s),f
[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
8079
2008/07/09(水) 23:30:33 すまんなんでもない
2008/07/09(水) 23:32:05
8279
2008/07/09(水) 23:32:56 実は今出先なのでCのコンパイラがなかった
すます
すます
8371
2008/07/09(水) 23:43:43 面倒だからみんなlongで
#include<stdio.h>
long*s,*d,y;main(c,v)char**v;{unsigned char h[54],f[3];long *t=&h[18],x,a;fread
(h,1,54,s=fopen(v[1],"rb"));a=4-*t*3%4;fwrite(h,1,54,d=fopen(v[2],"wb"));for(;y
++<t[1];a-4&&fread(h,1,a,s))for(x=*t;x--;fwrite(f,1,3,d))fread(h,1,3,s),f[0]=f[
1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
#include<stdio.h>
long*s,*d,y;main(c,v)char**v;{unsigned char h[54],f[3];long *t=&h[18],x,a;fread
(h,1,54,s=fopen(v[1],"rb"));a=4-*t*3%4;fwrite(h,1,54,d=fopen(v[2],"wb"));for(;y
++<t[1];a-4&&fread(h,1,a,s))for(x=*t;x--;fwrite(f,1,3,d))fread(h,1,3,s),f[0]=f[
1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
8471
2008/07/10(木) 00:13:01 #include<stdio.h>
unsigned char h[54],f[3];long*s,*d,y,*t=h+18,x,a;main(c,v)char**v;{fwrite(h,1,
fread(h,1,54,s=fopen(v[1],"rb")),d=fopen(v[2],"wb"));for(a=4-*t*3%4;y++<t[1];a-
4&&fread(h,1,a,s))for(x=*t;x--;fwrite(f,1,3,d))fread(h,1,3,s),*f=f[1]=f[2]=77*h
[2]+150*h[1]+29**h>>8;}
unsigned char h[54],f[3];long*s,*d,y,*t=h+18,x,a;main(c,v)char**v;{fwrite(h,1,
fread(h,1,54,s=fopen(v[1],"rb")),d=fopen(v[2],"wb"));for(a=4-*t*3%4;y++<t[1];a-
4&&fread(h,1,a,s))for(x=*t;x--;fwrite(f,1,3,d))fread(h,1,3,s),*f=f[1]=f[2]=77*h
[2]+150*h[1]+29**h>>8;}
2008/07/10(木) 00:49:30
いい流れだ
2008/07/10(木) 09:14:57
おまえらそんな可読性の高いコード書いてて恥ずかしくないの?
2008/07/10(木) 11:00:43
>>86 恥なんかあったら、コードは掛けんよ(笑
2008/07/13(日) 16:10:20
JavascriptでBase64エンデコード
<script>S=String.fromCharCode;c='0123456789+/=';for(i=122;64<i;i-=i-97?1:7)c=S(
i)+c;document.write(eval('l=v.length;for(i=p=0;i<l;){for(n=0,j='+(/[^+/-9=A-Z]/
i.test(v=unescape(encodeURI(prompt(r=''))))?'3;j--;l<i&&p--)n=n<<8|v.charCodeAt
(i++);for(j=4;j--;)r+=c.charAt(n>>6*j&63)}p?r.slice(0,p)+(p+1?"==":"="):r':'4;j
--;t-64||p--)n=n<<6|(t=c.indexOf(v.charAt(i++)))&63;for(j=3;j--;)r+=S(n>>8*j&25
5)}decodeURIComponent(escape(r.slice(0,p)||r))')))</script>
ほぼ限界だと思うんだが、どうなんだろう
pやcharAtが冗長な気もするけど・・・
<script>S=String.fromCharCode;c='0123456789+/=';for(i=122;64<i;i-=i-97?1:7)c=S(
i)+c;document.write(eval('l=v.length;for(i=p=0;i<l;){for(n=0,j='+(/[^+/-9=A-Z]/
i.test(v=unescape(encodeURI(prompt(r=''))))?'3;j--;l<i&&p--)n=n<<8|v.charCodeAt
(i++);for(j=4;j--;)r+=c.charAt(n>>6*j&63)}p?r.slice(0,p)+(p+1?"==":"="):r':'4;j
--;t-64||p--)n=n<<6|(t=c.indexOf(v.charAt(i++)))&63;for(j=3;j--;)r+=S(n>>8*j&25
5)}decodeURIComponent(escape(r.slice(0,p)||r))')))</script>
ほぼ限界だと思うんだが、どうなんだろう
pやcharAtが冗長な気もするけど・・・
2008/07/13(日) 16:18:39
お、79文字に収まった
<script>S=String.fromCharCode;c='0123456789+/=';for(i=123;65<i;)c=S(i-=i-97?1:7
)+c;document.write(eval('l=v.length;for(i=p=0;i<l;){for(n=0,j='+(/[^+/-9=A-Z]/i
.test(v=unescape(encodeURI(prompt(r=''))))?'3;j--;l<i&&p--)n=n<<8|v.charCodeAt\
(i++);for(j=4;j--;)r+=c.charAt(n>>6*j&63)}p?r.slice(0,p)+(p+1?"==":"="):r':'4;\
j--;t-64||p--)n=n<<6|(t=c.indexOf(v.charAt(i++)))&63;for(j=3;j--;)r+=S(n>>8*j&\
255)}decodeURIComponent(escape(r.slice(0,p)||r))')))</script>
<script>S=String.fromCharCode;c='0123456789+/=';for(i=123;65<i;)c=S(i-=i-97?1:7
)+c;document.write(eval('l=v.length;for(i=p=0;i<l;){for(n=0,j='+(/[^+/-9=A-Z]/i
.test(v=unescape(encodeURI(prompt(r=''))))?'3;j--;l<i&&p--)n=n<<8|v.charCodeAt\
(i++);for(j=4;j--;)r+=c.charAt(n>>6*j&63)}p?r.slice(0,p)+(p+1?"==":"="):r':'4;\
j--;t-64||p--)n=n<<6|(t=c.indexOf(v.charAt(i++)))&63;for(j=3;j--;)r+=S(n>>8*j&\
255)}decodeURIComponent(escape(r.slice(0,p)||r))')))</script>
2008/07/14(月) 19:05:50
<body id=D onKeyDown=K=event.keyCode-38 onload='Z=X=[B=A=12];(Y=function(){for(
C=[q=c=i=4];f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6?
h+=K:t?B=C:0;i=K=q--;f+=Z[A+p])k=X[p=h+B[q]]=1;h+=A;if(f|B)for(Z=X,X=[l=228],B=
[[-7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P+=
k++,c=l+=A);--c>A;)Z[c]=Z[c-A];for(S="";i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228
)?i%A?"■":"■<br>":"_");D.innerHTML=S+P;Z[5]||setTimeout(Y,i-P)})(h=K=t=P=0)'
C=[q=c=i=4];f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6?
h+=K:t?B=C:0;i=K=q--;f+=Z[A+p])k=X[p=h+B[q]]=1;h+=A;if(f|B)for(Z=X,X=[l=228],B=
[[-7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P+=
k++,c=l+=A);--c>A;)Z[c]=Z[c-A];for(S="";i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228
)?i%A?"■":"■<br>":"_");D.innerHTML=S+P;Z[5]||setTimeout(Y,i-P)})(h=K=t=P=0)'
2008/07/14(月) 21:04:11
>>35の方が少し短い
2008/07/14(月) 21:17:17
innerHTMLのほうがいい罠
2008/07/14(月) 21:34:04
innerTextとかIEだけじゃん 環境依(Ry
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★8 [蚤の市★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【音楽】松山千春、女性っぽい名前に親恨んだ「名簿には必ず女の方に入ってる。情けなかったりもしたけどね」 [湛然★]
- どこだ?強ええええバキぼんやは????
- ( ´・ω・` )どいてもらえます?
- 【画像】沖縄風蒸しパン
- 【埼玉】34歳無職、置き配📦を盗みまくる!その数、400点!😱 [718678614]
- 福井県民に頭おかしくされて悔しいからスレ立て
- なあ、「石破さんにもう一回やって頂く」って選択肢って…ないか? [976717553]
