#author("2019-08-09T16:55:51+08:00","default:Admin","Admin") C

C语言

16位拆成高低八位,和高低八位合成16位

#include <stdio.h>
#include <stdlib.h>
char right,left,temp;//right表示第八位,left表示高八位
int size_right,size_left,size_temp;
short int number,size_number;
short int number_two,number_three;
//int 是四个字节 short int 是两个字节
int main()
{
    number =32343; //65536个数范围是 -32768-32767
    size_number = sizeof(number);
    size_right = sizeof(right);
    size_left = sizeof(left);
    size_temp = sizeof(temp);
    printf("size_number=%d个字节\n",size_number);
    printf("size_left=%d个字节\n",size_left);
    printf("size_right=%d个字节\n",size_right);
    printf("size_temp=%d个字节\n",temp);
    printf("number=%d\n",number);
    right = number&0XFF;//低八位
    left = number>>8;//高八位
    printf("right = %d\n",right);
    printf("left  = %d\n",left);
    printf("number_two=%d\n",left*256+right);
    //前取高八位,在取低八位
    left=(number>>8)&0XFF; //先取高八位
    right=number&0XFF;     //再取第八位
    printf("number_two=%d\n",left*256+right);
    //现在要把高八位和第八位合并
    number_three=left;
    number_three<<=8;
    number_three|=right;
    printf("number_three=%d",number_three);
    return 0;
}

高低位合并

#define MERGE(HIGH,LOW) ((uint16)((((HIGH)&0xFF)<<8)|((LOW)&0xFF)))

拆分

//拆低位
#define LOW_BIT(x) (x) & 0xFF

//拆高位
#define HIGH_BIT(x) ((x) >> 8)


★月額105円~/容量最大30GB/機能満載! ロリポップ!レンタルサーバー ★

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:33:01 (1628d)

PCpዾyǗlgĂ܂}WŔ܂z 萔O~ył񂫁z Yahoo yV NTT-X Store

z[y[W ̃NWbgJ[h COiq ӂ邳Ɣ[ COsیI COze