0x40バイトでスケーリングされたバイト値から文字を取得しようとする2日目
Logic Pro /MackieControlから16進値を取得しようとしています。
ロジックは私に0xEを送信します。これは、これが「n」であることを意味します。「4e」が送信された場合は、ディスプレイ「n」に描画する必要があることを意味します。(最後にドットを追加するだけです)。
これは、charをbyteに変換するための式です。逆の式を作るのを手伝ってください。
char translate_seven_segment( char achar )
{
achar = toupper( achar );
if ( achar >= 0x40 && achar <= 0x60 )
return achar - 0x40;
else if ( achar >= 0x21 && achar <= 0x3f )
return achar;
else
return 0x00;
}
char s = 'N';
Byte ad = translate_seven_segment( s ) + ( '.' == '.' ? 0x40 : 0x00 );
私は次のコードも見つけました(これはtopper()なしのようです):
def translate_seven_segment( char )
case char
when 0x40..0x60
char - 0x40
when 0x21..0x3f
char
else
0x00
end
end
どうすれば元に戻すことができますか?mackieがこのコードを使用してcharからhexを構築することを知っています。しかし、その逆が必要です。16進数からcharを取得することです。