下
C言語のお勉強ページに対するご意見・ご感想スレ
37:へなちょこ管理人 ★2009/01/26(月) 23:19:05AAS
現在Cのコンパイル環境がないので昔のPCでちまちまやるの面倒だった・・・。
おおざっぱですが、やってみました。挙動がおかしかったらご指摘下さい。
38:へなちょこ管理人 ★2009/01/26(月) 23:20:16AAS
/*
符号無し整数xのposビット目からn個のビットを、1にした値を返す関数set_n、0にした値を返す関数reset_n、反転した値を返す関数inverse_n
unsigned set_n( unsigned x, int pos, int n) { /*…*/ }
unsigned reset_n( unsigned x, int pos, int n) { /*…*/ }
unsigned inverse_n( unsigned x, int pos, int n) { /*…*/ }
を作成せよ。
省94
39:へなちょこ管理人 ★2009/01/26(月) 23:23:44AAS
fooooooooooooooooooooooooo
forの中のj = pos - 1ってのは全部j = 0におきかえてくだしあ。
間違えたまま保存してたw
40:@携帯2009/01/27(火) 13:03:01 [sage] AAS
あー
ちゃんと引数あたえてなかったりでめちゃめちゃや。
帰宅してから直します。
41:へなちょこ管理人 ★2009/01/27(火) 20:12:43AAS
>符号無し整数xのposビット目からn個のビットを
右にn個なのか左にn個なのか・・・。
humm...
42:へなちょこ管理人 ★2009/01/27(火) 20:40:51AAS
/*
符号無し整数xのposビット目からn個のビットを、1にした値を返す関数set_n、0にした値を返す関数reset_n、反転した値を返す関数inverse_n
unsigned set_n( unsigned x, int pos, int n)
unsigned reset_n( unsigned x, int pos, int n)
unsigned inverse_n( unsigned x, int pos, int n)
を作成せよ。
省95
43:へなちょこ管理人 ★2009/01/27(火) 20:43:39AAS
上記の回答は右にn個処理するものです。
左にn個処理する場合は各関数の i <<= pos - n;を
i <<= pos - 1;にしたらいいと思います。
44:へなちょこ管理人 ★2009/01/27(火) 20:49:27AAS
んで、もし、posがunsignedを超えたり、nがposを超える入力があった場合のために、
pos → pos % int_bits()
n → n % pos
にしとくと安全かもしれません。
45:へなちょこ管理人 ★2009/01/27(火) 21:01:53AAS
newcomer.nuts-choco.com
んで、ファイル置いておきました。
46:uuuss2009/05/17(日) 17:28:39AAS
newcomer.s368.xrea.com
掲示板へのリンクが切れてるw
上前次1-新書写板AA設索