bit操作

poke/peekの1bit単位版みたいなやつ。pokeとsetbit,peekとgetbitがだいたい対応。byte単位だったのがbit単位になっただけ。当たり前にビッグエンディアンの考え方だからね。

poke/peekの1bit単位版みたいなやつ。pokeとsetbit,peekとgetbitがだいたい対応。byte単位だったのがbit単位になっただけ。当たり前にビッグエンディアンの考え方だからね。

  • タグ:
  • タグはありません
#module sgetbit
#const FULL 0xFF
#const NULL 0x00
#deffunc setbit var map, int ptr, int bit
	if (bit!=0) && (bit!=1) : return -1
	if bit==0 : poke map, ptr/8, peek(map, ptr/8) & (FULL ^ (0x80 >> (ptr \ 8)))
	if bit==1 : poke map, ptr/8, peek(map, ptr/8) | (0x80 >> (ptr \ 8))
return 0

#defcfunc getbit var map, int ptr
return (peek(map, ptr/8) & (0x80 >> (ptr \ 8))) != 0

#global