问题一:
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <windows.h>
int main()
{
int number = 0;
char buf[32] = {0};
number = 123;
memcpy(buf, &number, sizeof(int));
printf("number: %d\n", atoi(buf));
system("pause");
return 0;
}
为什么atoi转换出来为0?
问题二:
int main()
{
char a = 'a', b = 'b';
unsigned int p = 0;
int c = 0;
int d = 0;
p = a;
cout << "p = " << p << endl;
p = (p << 8) | b;
cout << "(p << 8)" << (p << 8) << endl;
return 0;
}
为什么p左移8位是6382080?
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <windows.h>
int main()
{
int number = 0;
char buf[32] = {0};
number = 123;
memcpy(buf, &number, sizeof(int));
printf("number: %d\n", atoi(buf));
system("pause");
return 0;
}
为什么atoi转换出来为0?
问题二:
int main()
{
char a = 'a', b = 'b';
unsigned int p = 0;
int c = 0;
int d = 0;
p = a;
cout << "p = " << p << endl;
p = (p << 8) | b;
cout << "(p << 8)" << (p << 8) << endl;
return 0;
}
为什么p左移8位是6382080?