char型强制转换为unsigned int型
- 今天有同学说要问我一个问题,
- 我说发生甚麽事了。
- 他说char型转unsigned 型后是怎么拓展的。
- 我说年轻人不讲武德,这不是上个代码就行了,还来偷袭我一个20岁的小同志。(打住)
先给出结论:按符号位拓展,也就是说当我们要传送时mov的格式应为movs
上代码:
#include<cstdio>
#include<iostream>
using namespace std;
int main() {
char c = 0xff;
unsigned int a = (unsigned int)c;
cout << "c=0xff:" << endl;
printf("拓展后 0x%X\n\n", a);
c = 0x11;
a= (unsigned int)c;
cout << "c=0x11" << endl;
printf("拓展后 0x%X\n", a);
return 0;
}
结果图:
- 当符号位为1时,强制转换为unsigned后为1拓展,符号位为0则0拓展,所以为符号位拓展。初步验证完毕。
- 话说为什么不直接百度,大意了没有闪。