● fixed X - 関数リファレンス

ビットセット

    void __stdcall   fixed_bit_set(PFIXEDVAL pval ,int bit_pos ,int setbit ,int width );

引数

引数名意味
pval対象の数値が格納されている FIXEDVAL領域の先頭アドレス
bit_posセット位置(ビットインデックス)
setbitセットするビット(ゼロ、またはゼロ以外)
widthpval の指す FIXEDVAL値の数値幅(バイト単位)

戻り値

無し

説明

pvalbit_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);
}