将int转换为十六进制的两个字节?

时间:2018-03-21 04:53:14

标签: dart

背景信息:我正在研究用于架构LED矩阵的照明协议转换器,并且需要以非常特定的方式对字节字符串进行编码,以便我的硬件能够识别标头。

问:如何将int转换为两个字节,以便我可以单独使用它们?

示例:

我想转换

function add_schema_person_shortcode() {
    ob_start();

    if (ICL_LANGUAGE_CODE == 'ar') { 

        if( function_exists( 'types_render_field' ) ){

            $author_info = array_filter( array (
                    'honorificPrefix' => types_render_field( "schema-person-honorific-prefix", array () ),
                    'givenName'       => types_render_field( "schema-person-given-name", array () ),
                    'familyName'      => types_render_field( "schema-person-family-name", array () ),
                    'honorificSuffix' => types_render_field( "schema-person-honorific-suffix", array () ),
                    ) );

            $author_additional_name = array_filter( array (
                    'additionalName' => types_render_field( "schema-person-additional-name", array () ),
                    ) );        

            $person_monastic_name = array_filter( array (
                    'additionalName' => types_render_field( "schema-person-monastic-name", array () ),
                    ) );        

            $person_date_of_birth = array_filter( array (
                    'birthDate' => types_render_field( "schema-person-date-of-birth", array () ),
                    ) );

            $person_place_of_birth = array_filter( array (
                    'birthPlace' => types_render_field( "schema-person-place-of-birth", array () ),
                    ) );        

                if ( ! empty( $author_info ) ) {

                    echo '<div class="schema_person_microdata_container">';
                        echo '<div itemscope itemtype="http://schema.org/Person">'; 
                        echo '<h3>'; echo 'كارت التعريف بالشخصية'; echo '</h3>';
                        echo '<table class="schema_book_microdata_table">';
                            echo '<tr>';
                                echo '<th class="schema-book-table-initial-column">'; echo 'البيانات'; echo '</th>';
                                echo '<th>';echo 'التفاصيل'; echo '</th>';
                            echo '</tr>';                   
                            echo '<tr><td>الأسم</td><td>';
                                foreach ( $author_info as $prop => $value ) {
                                printf( '<span itemprop="%s"> %s </span>', $prop, $value );
                                }
                                echo '</span></td></tr>';


                            if ( ! empty( $author_additional_name ) ) {
                                echo '<tr><td>الأسم قبل الرسامة</td><td>';
                                foreach ( $author_additional_name as $prop => $value ) {
                                printf( '<span itemprop="%s"> %s </span>', $prop, $value );
                                }
                                echo '</span></td></tr>';
                            }

                            if ( ! empty( $person_monastic_name ) ) {
                                echo '<tr><td>الأسم الرهباني</td><td>';
                                foreach ( $person_monastic_name as $prop => $value ) {
                                printf( '<span itemprop="%s"> %s </span>', $prop, $value );
                                }
                                echo '</span></td></tr>';
                            }

                            if ( ! empty( $person_date_of_birth ) ) {
                                echo '<tr><td>تاريخ الميلاد</td><td>';
                                foreach ( $person_date_of_birth as $prop => $value ) {
                                printf( '<span itemprop="%s"> %s </span>', $prop, $value );
                                }
                                echo '</span></td></tr>';
                            }

                            if ( ! empty( $person_place_of_birth ) ) {
                                echo '<tr><td>محل الميلاد</td><td>';
                                foreach ( $person_place_of_birth as $prop => $value ) {
                                printf( '<span itemprop="%s"> %s </span>', $prop, $value );
                                }
                                echo '</span></td></tr>';
                            }



                        echo '</table>';
                        echo '</div>';
                    echo '</div>';
                }
        }

    }

    $function_output = ob_get_contents();

    ob_end_clean();

    return $function_output;
}
add_shortcode( 'schema-person-shortcode', 'add_schema_person_shortcode');

到以下列表:var aDynamicValue = 511 //where value will range from 0-511

这样我就可以了

[0x01, 0xFF]

由于

2 个答案:

答案 0 :(得分:4)

与逻辑AND一起使用位移以屏蔽除前8位以外的所有位。伪代码:

a = 511;
byte1 = a & 0xff;
byte2 = (a >> 8) & 0xff;

答案 1 :(得分:4)

typed_data和int.toRadixString(16)可用于从整数中获取十六进制:

final list = new Uint64List.fromList([511]);
final bytes = new Uint8List.view(list.buffer);
final result = bytes.map((b) => '0x${b.toRadixString(16).padLeft(2, '0')}');
print('bytes: ${result}');