2017-05-26 15 views

答えて

0

変換へのトリックは、それらの厄介な文字を扱っています。これを行う最も簡単な方法は、16進数値と16進数を同じにする「マップ」構造であることがわかりました。スモールベーシックでは、スモールベーシックの配列は実際にマップとして実装されているので、これをさらに簡単にできます。

私は上記のスニペットに基づいて完全な例を作成しました。このスモール・ベイジアン・インポート・コードを使用して取得することができます。CJK283

以下のサブルーチンは重要なビットです。これは2桁の16進数を10進数に変換します。また、Small Basicでのサブルーチンの制限についても強調しています。パラメータが渡され、値が返される各呼び出しの1行ではなく、Small Basicでは、サブルーチンを呼び出すためにサブルーチン内に変数をジャグリングし、少なくとも3行を必要とします。

'Call to the ConvertToHex Subroutine 
    hex = Text.GetSubText(color,2,2) 
    DecimalFromHex() 
    red = decimal 

Convert a Hex string to Decimal 
Sub DecimalFromHex 
    'Set an array as a quick and dirty way of converting a hex value into a decimal value 
    hexValues = "0=0;1=1;2=2;3=3;4=4;5=5;6=6;7=7;8=8;9=9;A=10;B=11;C=12;D=13;E=14;F=15" 
    hiNibble = Text.GetSubText(hex,1,1)  'The high order nibble of this byte 
    loNibble = Text.GetSubText(hex,2,1)  'The low order nibble of this byte 
    hiVal = hexValues[hiNibble] * 16  'Combine the nibbles into a decimal value 
    loVal = hexValues[loNibble] 
    decimal = hiVal + loVal 
EndSub 
関連する問題