EP9. 嵌入式小端转大端
描述
示例1
输入:
1
输出:
16777216
C 解法, 执行用时: 3ms, 内存消耗: 320KB, 提交时间: 2022-08-04
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return int整型 * * C语言声明定义全局变量请加上static,防止重复定义 */ typedef union{ int n; unsigned char arr[4]; } TEMP; int convert(int n ) { TEMP temp; temp.n = n; n = (temp.arr[0] << 24) | (temp.arr[1] << 16) | (temp.arr[2] << 8) | temp.arr[3]; return n; }
C 解法, 执行用时: 3ms, 内存消耗: 384KB, 提交时间: 2022-08-04
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return int整型 * * C语言声明定义全局变量请加上static,防止重复定义 */ typedef union { int ival; char cval[4]; }u_int_char; int convert(int n ) { u_int_char a, b; a.ival = n; b.cval[0] = a.cval[3]; b.cval[1] = a.cval[2]; b.cval[2] = a.cval[1]; b.cval[3] = a.cval[0]; return b.ival; }
C 解法, 执行用时: 3ms, 内存消耗: 384KB, 提交时间: 2022-08-04
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return int整型 * * C语言声明定义全局变量请加上static,防止重复定义 */ #define _swap(a, b) do {a ^= b; b ^= a; a ^= b;} while (0) typedef union { int w; char b[4]; } w_t; int convert(int n ) { // write code here w_t d; d.w = n; _swap(d.b[0], d.b[3]); _swap(d.b[1], d.b[2]); return d.w; }
C 解法, 执行用时: 3ms, 内存消耗: 388KB, 提交时间: 2022-08-06
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return int整型 * * C语言声明定义全局变量请加上static,防止重复定义 */ int convert(int n ) { // write code here int m=0; char* p=&m,*q=&n; p[0]=q[3]; p[1]=q[2]; p[2]=q[1]; p[3]=q[0]; return m; }
C 解法, 执行用时: 3ms, 内存消耗: 392KB, 提交时间: 2022-08-04
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return int整型 * * C语言声明定义全局变量请加上static,防止重复定义 */ int convert(int n ) { // write code here char *p1 = &n; char *p2 = p1 + sizeof(int) - 1; for(int i = 0; i < (sizeof(int) / 2); i++) { int temp = *p1; *p1 = *p2; *p2 = temp; p1++; p2--; } return n; }