下
C言語のお勉強ページに対するご意見・ご感想スレ
38:へなちょこ管理人 ★2009/01/26(月) 23:20:16
/*
符号無し整数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:44
fooooooooooooooooooooooooo
forの中のj = pos - 1ってのは全部j = 0におきかえてくだしあ。
間違えたまま保存してたw
40:@携帯2009/01/27(火) 13:03:01 [sage]
あー
ちゃんと引数あたえてなかったりでめちゃめちゃや。
帰宅してから直します。
41:へなちょこ管理人 ★2009/01/27(火) 20:12:43
>符号無し整数xのposビット目からn個のビットを
右にn個なのか左にn個なのか・・・。
humm...
42:へなちょこ管理人 ★2009/01/27(火) 20:40:51
/*
符号無し整数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:39
上記の回答は右にn個処理するものです。
左にn個処理する場合は各関数の i <<= pos - n;を
i <<= pos - 1;にしたらいいと思います。
44:へなちょこ管理人 ★2009/01/27(火) 20:49:27
んで、もし、posがunsignedを超えたり、nがposを超える入力があった場合のために、
pos → pos % int_bits()
n → n % pos
にしとくと安全かもしれません。
45:へなちょこ管理人 ★2009/01/27(火) 21:01:53
newcomer.nuts-choco.com
んで、ファイル置いておきました。
46:uuuss2009/05/17(日) 17:28:39
newcomer.s368.xrea.com
掲示板へのリンクが切れてるw
47:へなちょこ管理人 ★2009/05/18(月) 02:54:08
>>46
っうぇっうぇw
一部相対リンクじゃなくて絶対リンクになってるから直すのめんどくせぇww
上前次1-新書写板AA設索