无符号整数和带符号整数的相互转换
- 互联网
- 2025-09-01 11:00:02

无符号字符数x转换为带符号字符数时,当时,转换后仍然为x;当时,转换后变为。
带符号字符数y转换为无符号字符数时,当时,转换后变为;当时,转换后仍然为y。
无符号整数和带符号整数的相互转换,实质上就是类型的强制转换。
源程序
void utosfun( unsigned char u[], char *pt1 ); void stoufun( char s[],unsigned char *pt2 );
void main() { unsigned char ux[2]={9,129},syu[2],fsyu[2]; char sy[2]={2,-2},uxs[2],fuxs[2]; int i; utosfun(ux,uxs); stoufun(sy,syu); for(i=0;i<2;i++) fsyu[i]=(unsigned char)sy[i]; //强制类型转换 for(i=0;i<2;i++) fuxs[i]=(char)ux[i]; //强制类型转换 while(1);
}
/**无符号数转换为带符号数**/ void utosfun( unsigned char u[], char *pt1 ) { int j,n=2; for(j=0;j<2;j++) { if(u[j]<(n<<7)) pt1[j]=u[j]; else pt1[j]=u[j]-(n<<8); } }
/**带符号数转换为无符号数**/ void stoufun(char s[], unsigned char *pt2) { int k,n=2; for(k=0;k<2;k++) { if(s[k]<0) pt2[k]=s[k]+(n<<8); else pt2[k]=s[k]; } }
程序运行后:
带符号字符数组sy[]元素转换为无符号字符数后存放在数组syu[]中;数组sy[]元素强制转换为无符号字符数后存放在数组fsyu[]中。syu[]与fsyu[]元素相同。
无符号字符数组ux[]元素转换为带符号字符数后存放在数组uxs[]中;数组ux[]元素强制转换为带符号字符数后存放在数组fuxs[]中。uxs[]和fuxs[]元素相同。
无符号整数和带符号整数的相互转换由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“无符号整数和带符号整数的相互转换”