㈠ 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;
}
}