㈠ C語言中,如何將一個整形拆分成兩個Byte請賜教
Word2Byte(unsigned short n)
{
printf("%u: Low byte=0x%02X, high byte=0x%02X.\n", n, n>>8, n&255);
}
或:
Word2Byte(unsigned short n)
{
unsigned byte num_l, num_h;
num_l = n & 255;
num_h = n >> 8;
printf("%u: Low byte=0x%02X, high byte=0x%02X.\n", n, num_h, num_h);
}
㈡ c語言int型數據轉char型數據,就是將一個int的高低兩個位元組分別轉換成兩個char型數據,謝謝!
unsigned int y; //定義一個無符號整形抄
unsigned char m,n; //定義兩個長度為8位的變數
m=y>>8; //將數據向右移動八位,那麼高位的話就全部是0了,然後將一個INT類型的數據傳遞給一個Char類型的數據
n=y; //直接將INT數據傳遞給char類型,這里將會發生數據丟失
㈢ 使用聯合體將整形數據的高位元組和低位元組拆分,並輸出結果
union __SomeThing
{
short int v;
struct {
char high;
char low;
} bytes;
};
union test;
test.v = 10;
test.bytes.high
test.bytes.low
㈣ 編寫程序,將一個整數的高位元組和低位元組分別輸出(位運算)
#include <stdio.h>
int main ( void )
{
int integer = 10000000; // 這個自己填個數吧, 不要超范圍就好
unsigned short high;
unsigned short low;
// 1111 1111 1111 1111 0000 0000 0000 0000
high = (unsigned short)(integer >> 16);
low = (unsigned short)integer;
printf ( "高位元組: %x\n", high );
printf ( "低位元組: %x\n", low );
return 0;
}
這是c語言的回, 不知道對不對, 直接轉答換成無符號的用16進制輸出
㈤ C語言使用聯合體將長整形數據的高位元組和低位元組拆分並且輸出結果的程序
當一個數據超過8位的時候就必須採用兩個或多個位元組進行存儲,例如int類型是16位的專數據類型,那麼屬十進制數字256就分為兩個位元組進行存儲0x01ff,其中高位元組就是0x01,低位元組就是0xff。存儲的時候應該是高位元組在內存的低地址,低位元組在內存的高地址
㈥ C語言取出整形數據高位元組
#include<stdio.h>
typedefunion{
struct{
shortb1:8;
shortb2:8;
};
shortn;
}my_short;
intmain(void)
{
shortb=0x1122;
intlittle_endian=0;
my_shorta;
if(*((char*)&b)==0x11)/*判斷大小來端*/
little_endian=1;
printf("十六進制源數是:");
scanf("%x",&a.n);
if(little_endian==1)
{
printf("高位元組位數據是:%x ",a.b1);
a.b1=0x62;
}
else
{
printf("高位元組位數據是:%x ",a.b2);
a.b2=0x62;
}
printf("現在這個數變為:%x ",a.n);
return0;
}
㈦ 將一個整數的高位元組和低位元組分別輸出(用位運算方法)
#include <iostream.h>
void main()
{
unsigned int a;
cout<<"請輸入一個數(小於4294967296,整數是4位元組):";
cin>>a;
unsigned int b = a & 0x000000ff;
cout<<"各位元組的內值為(10進制):"<<endl;
cout<<"低字容節為:"<<b<<endl;
b = a & 0x0000ff00;
b/=256;
cout<<"次低位元組為:"<<b<<endl;
b = a & 0x00ff0000;
b/=65536;
cout<<"次高位元組為:"<<b<<endl;
b = a & 0xff000000;
b/=65536*256;
cout<<"高位元組為:"<<b<<endl;
}
㈧ 一個長整型變數佔4個位元組,其中每個位元組又分成高4位和低4位。試從該長整型變數的高
說個思路吧~先轉換成char指針~然後和0F0H與~然後右移
㈨ 將大於255的整型(16位)分成高、低兩個位元組)
unsignedcharlow=a&0xFF;
unsignedcharhigh=(a&0xFF00)>>8;
㈩ 使用聯合體將長整型數據的高位元組和低位元組拆分,並輸出結果
static void(int[]group)
{
int temp;
int pos=0;
for(int i=0;i< group.Length-1;i++)
{
pos=i;
for(intj=i+1;j<group.Length;j++)
{
if(group[j]<group[pos])
{
pos=j;
}
}//第復i個數制與最小的數group[pos]交換
temp=group[i];
group[i]=group[pos];
group[pos]=temp;
}
}