JavaA2Z

KAB-studio > プログラミング > JavaA2Z > バイアスとは

バイアス

日本語 偏向
英語 bias
ふりがな ばいあす
フリガナ バイアス

解説

ある一方向への移動、もしくは圧力のこと。
 
一般的な意味としては、公平中立な立場ではなく、どちらか一方に寄った意見を持つこと。
たとえば「家電製品はどこのがいい?」という質問に対して「ソニー製品しかないでしょ」というのは「ソニー製品好きというバイアスが掛かった発言」と言える。
このように、ある傾向に偏っていることを「バイアスが掛かっている」と言う。
 
これと同じような表現を数値にもう事がある。
数値をあらかじめ増減しておき、その状態を中心の値と見なすことを「バイアスを掛けておく」と表現する。
たとえば、浮動小数点指数部は、ビットが00000000000の時に2の-1023乗、11111111111の時に2の1023乗である。
普通の整数値であればビットが0の時に0であるため、それに対して中心の値がずれていることになる。これがつまり「バイアスが掛かっている」状態である。
バイアスを掛けて中心の値をずらすことで、表現できる数を増やすことができる。この例であれば、2の補数を使わなければ負の数を表現できないのに対し、バイアスを掛けることで2の補数を使わずに負の数を表現している。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 浮動小数点で一番「普通」の値は2.0です。
        outputDoubleBit( 2.0 );
        // 0 10000000000 0000000000000000000000000000000000000000000000000000

        // 1ビット目~11ビット目は指数部、2の累乗が格納されます。
        outputDoubleBit( 0.125 );
        outputDoubleBit( 0.25 );
        outputDoubleBit( 0.5 );
        outputDoubleBit( 1.0 );
        outputDoubleBit( 2.0 );
        outputDoubleBit( 4.0 );
        outputDoubleBit( 8.0 );
        outputDoubleBit( 16.0 );
        // 0 01111111100 0000000000000000000000000000000000000000000000000000
        // 0 01111111101 0000000000000000000000000000000000000000000000000000
        // 0 01111111110 0000000000000000000000000000000000000000000000000000
        // 0 01111111111 0000000000000000000000000000000000000000000000000000
        // 0 10000000000 0000000000000000000000000000000000000000000000000000
        // 0 10000000001 0000000000000000000000000000000000000000000000000000
        // 0 10000000010 0000000000000000000000000000000000000000000000000000
        // 0 10000000011 0000000000000000000000000000000000000000000000000000
        // 指数のビットは、整数とほぼ同じです。
        // 01111111100 :  0.125 : 2の-3乗 : 
        // 01111111101 :  0.25  : 2の-2乗
        // 01111111110 :  0.5   : 2の-1乗
        // 01111111111 :  1.0   : 2の 0乗   ↓指数部の値を2進数で表現した場合。
        // 10000000000 :  2.0   : 2の 1乗 : 0001
        // 10000000001 :  4.0   : 2の 2乗 : 0010
        // 10000000010 :  8.0   : 2の 3乗 : 0100
        // 10000000011 : 16.0   : 2の 4乗 : 1000
        // このように、ビットは「累乗」を表しています。
        // ただし、2の-1023乗の時に00000000000、
        // 2の1023乗の時に11111111111となります。
        // つまり、ビット的にバイアスを掛けておくことで、
        // 2の補数を使わずに負の値を表現しているわけです。
    }
    
    /**
    *   double型変数をビット形式で出力します。
    */
    private static void outputDoubleBit( double d )
    {
        // double型変数をビット形式で文字列化します。
        String source = Long.toBinaryString( Double.doubleToLongBits( d ) );
        // 左0埋めします。
        StringBuffer strbuf = new StringBuffer();
        forint iF1 = source.length(); iF1 < 64; ++iF1 )
        {
            strbuf.append( "0" );
        }
        strbuf.append( source );
        // 符号、仮数部、指数部の間にスペースを入れます。
        strbuf.insert( 12, " " );
        strbuf.insert( 1, " " );

        System.out.println( strbuf.toString() );
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 浮動小数点で一番「普通」の値は2.0です。
        outputDoubleBit( 2.0 );
        // 0 10000000000 0000000000000000000000000000000000000000000000000000

        // 1ビット目~11ビット目は指数部、2の累乗が格納されます。
        outputDoubleBit( 0.125 );
        outputDoubleBit( 0.25 );
        outputDoubleBit( 0.5 );
        outputDoubleBit( 1.0 );
        outputDoubleBit( 2.0 );
        outputDoubleBit( 4.0 );
        outputDoubleBit( 8.0 );
        outputDoubleBit( 16.0 );
        // 0 01111111100 0000000000000000000000000000000000000000000000000000
        // 0 01111111101 0000000000000000000000000000000000000000000000000000
        // 0 01111111110 0000000000000000000000000000000000000000000000000000
        // 0 01111111111 0000000000000000000000000000000000000000000000000000
        // 0 10000000000 0000000000000000000000000000000000000000000000000000
        // 0 10000000001 0000000000000000000000000000000000000000000000000000
        // 0 10000000010 0000000000000000000000000000000000000000000000000000
        // 0 10000000011 0000000000000000000000000000000000000000000000000000
        // 指数のビットは、整数とほぼ同じです。
        // 01111111100 :  0.125 : 2の-3乗 : 
        // 01111111101 :  0.25  : 2の-2乗
        // 01111111110 :  0.5   : 2の-1乗
        // 01111111111 :  1.0   : 2の 0乗   ↓指数部の値を2進数で表現した場合。
        // 10000000000 :  2.0   : 2の 1乗 : 0001
        // 10000000001 :  4.0   : 2の 2乗 : 0010
        // 10000000010 :  8.0   : 2の 3乗 : 0100
        // 10000000011 : 16.0   : 2の 4乗 : 1000
        // このように、ビットは「累乗」を表しています。
        // ただし、2の-1023乗の時に00000000000、
        // 2の1023乗の時に11111111111となります。
        // つまり、ビット的にバイアスを掛けておくことで、
        // 2の補数を使わずに負の値を表現しているわけです。
    }
    
    /**
    *   double型変数をビット形式で出力します。
    */
    private static void outputDoubleBit( double d )
    {
        // double型変数をビット形式で文字列化します。
        String source = Long.toBinaryString( Double.doubleToLongBits( d ) );
        // 左0埋めします。
        StringBuffer strbuf = new StringBuffer();
        for( int iF1 = source.length(); iF1 < 64; ++iF1 )
        {
            strbuf.append( "0" );
        }
        strbuf.append( source );
        // 符号、仮数部、指数部の間にスペースを入れます。
        strbuf.insert( 12, " " );
        strbuf.insert( 1, " " );

        System.out.println( strbuf.toString() );
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/05/12
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。