#include <stdio.h>
// 1й пример
unsigned char swapByteLoHi1(unsigned char byte)
{
struct byteParts
{
unsigned lo:4;
unsigned hi:4;
}* pByteParts;
pByteParts=(struct byteParts*)&byte;
return pByteParts->lo<<4 | pByteParts->hi;
}
// 2й пример
unsigned char swapByteLoHi2(unsigned char byte)
{
return (byte<<4) | (byte>>4);
}
// 3й пример
unsigned char swapByteLoHi3(unsigned char byte)
{
// AT&T Assembler(не Intel!!!)
asm("rorb $4,%%al":"=al"(byte):"al"(byte));
return byte;
}
int main()
{
unsigned char byte=0xab;
printf("Вначале:%X\n",byte);
printf("После перестановки:%X\n",swapByteLoHi1(byte));
printf("После перестановки:%X\n",swapByteLoHi2(byte));
printf("После перестановки:%X\n",swapByteLoHi3(byte));
return (0);
}
/home/micren/Projects/174335-c/Debug/src/174335_c
----------------------------------------------
Вначале:AB
После перестановки:BA
После перестановки:BA
После перестановки:BA
----------------------------------------------
Program exited successfully with errcode (0)
Press the Enter key to close this terminal ...
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.