● fixed X - 関数リファレンス
ビットセット
void __stdcall fixed_bit_set(PFIXEDVAL pval ,int bit_pos ,int setbit ,int width );
引数
引数名 | 意味 |
pval | 対象の数値が格納されている FIXEDVAL領域の先頭アドレス |
bit_pos | セット位置(ビットインデックス) |
setbit | セットするビット(ゼロ、またはゼロ以外) |
width | pval の指す FIXEDVAL値の数値幅(バイト単位) |
戻り値
無し
説明
pval の bit_pos にビットをセットします。setbit がゼロの場合は 0 、ゼロ以外の場合は 1 をセットします。
bit_pos は ゼロ 〜 width × 8 - 1 が有効範囲です。範囲を超えるビットインデックスが与えられた場合、width × 8 の剰余が使用されます。
引数 pval の指す領域は、width が示す数値幅以上のサイズを持っている必要があり、width は 4 の倍数である必要があります。
テスト.
#include <stdio.h>
#include "fixedX.h"
#define BIT 128
#define SIZE (BIT / 8)
#define NUMSIZE 39
void main(void)
{
FIXEDVAL src[SIZE],dest[SIZE];
char *ptr,buf[NUMSIZE+1];
int i;
fixed_atoui(src,SIZE,ptr = "170141183460469231731687303715");
/* ビット単位で src の内容を dest にコピー */
for(i = 0;i < BIT;i++)
fixed_bit_set(dest,i,fixed_bit_test(src,i,SIZE),SIZE);
fixed_num2str10(dest,SIZE,buf);
printf("%s\n%s\n",ptr,buf);
}