2進数の記述
Posted feedbacks - Other
Mac OS X (PowerPC 32bit) アセンブリでは二進数リテラルがありませんが、マクロを使うと定数を二進数表記で定義することができます。可変長の桁数は、マクロでは無理です。
1 2 3 4 5 6 7 8 9 10 11 12 | .machine ppc
.globl _main
.macro DEFBIN
$0=$1<<7|$2<<6|$3<<5|$4<<4|$5<<3|$6<<2|$7<<1|$8
.endmacro
DEFBIN BINNUM,1,1,1,1,1,1,1,1
_main:
li r10, BINNUM
...
|
Factor はリテラル表記があります。
1 | BIN: 0110100
|
Forthでは、基数が"BASE"という変数で定義されています。 この値を変えることで、何進数でもリテラルを記述することが可能です。 また、以下の基数を変更する関数が定義されています。 :DECIMAL ( -- 基数を10に変更する ) 10 BASE ! ; :BINARY ( -- 基数を 2に変更する ) 2 BASE ! ; :OCTAL ( -- 基数を 8に変更する ) 8 BASE ! ; :HEX ( -- 基数を16に変更する ) 16 BASE ! ;
1 | BINARY 01101001 DECIMAL .
|



yappy
#4345()
[
C
]
Rating4/6=0.67
そこで、ソース中に2進数を定数として書く方法、またはその代替手段を考えてください。
ある程度の評価基準を示します(できるところまでで構いません)。
・2進数の表示方法は0と1
・桁数は可変長
・コンパイル等の後に最適化等によって定数に変換されることが見込まれる
Cで関数として実装したものを示しておきます。
Rating4/6=0.67-0+
[ reply ]