主题:[讨论]很简单的问题:关于>>运算符
这是关于 >> 运算符的问题。
>> 运算符在对待有符号数和无符号数好象有差别。
说明: 1. show_char的功能是显示出char类型数在内存中的表示
2. show-int 的功能是显示出int 类型数在内存中的表示
3. windy.h文件在附件中
[code=c]
#include "stdlib.h"
#include "stdio.h"
#include "windy.h"
#define Uchar unsigned char
#define Uint unsigned int
void ( Show )( char ch,Uchar uch,int i,Uint ui )
{
printf( " ch " ); show_char( &ch );
printf( "\n uch " ); show_char( &uch );
printf( "\n i " ); show_int ( &i );
printf( " ui " ); show_int ( &ui );
}
void ( RightShift )( char ch,Uchar uch,int i,Uint ui,Uint bits )
{ //右移bits位
printf( "\n\nRight Shift %d bits \n",bits ) ;
Show( ch>>= bits, uch>>= bits, i>>= bits, ui >>= bits );
}
int main( void )
{
char ch = 0x81;
Uchar uch = 0x81;
int i = 0x80000002;
Uint ui = 0x80000002;
RightShift( ch,uch,i,ui,0 ); //原始数据
RightShift( ch,uch,i,ui,1 ); //右移1位
RightShift( ch,uch,i,ui,2 ); //右移2位
RightShift( ch,uch,i,ui,3 ); //右移3位
printf( "\n\n" );
system( "pause" );
return 0 ;
}[/code]
>> 运算符在对待有符号数和无符号数好象有差别。
说明: 1. show_char的功能是显示出char类型数在内存中的表示
2. show-int 的功能是显示出int 类型数在内存中的表示
3. windy.h文件在附件中
[code=c]
#include "stdlib.h"
#include "stdio.h"
#include "windy.h"
#define Uchar unsigned char
#define Uint unsigned int
void ( Show )( char ch,Uchar uch,int i,Uint ui )
{
printf( " ch " ); show_char( &ch );
printf( "\n uch " ); show_char( &uch );
printf( "\n i " ); show_int ( &i );
printf( " ui " ); show_int ( &ui );
}
void ( RightShift )( char ch,Uchar uch,int i,Uint ui,Uint bits )
{ //右移bits位
printf( "\n\nRight Shift %d bits \n",bits ) ;
Show( ch>>= bits, uch>>= bits, i>>= bits, ui >>= bits );
}
int main( void )
{
char ch = 0x81;
Uchar uch = 0x81;
int i = 0x80000002;
Uint ui = 0x80000002;
RightShift( ch,uch,i,ui,0 ); //原始数据
RightShift( ch,uch,i,ui,1 ); //右移1位
RightShift( ch,uch,i,ui,2 ); //右移2位
RightShift( ch,uch,i,ui,3 ); //右移3位
printf( "\n\n" );
system( "pause" );
return 0 ;
}[/code]