列表

详情


EP8. 嵌入式机器的大小端

描述

数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中称之为大端模式(BE),而小端模式(LE)则反之。牛牛想知道牛客网的后台使用的是哪种模式,你能根据函数输入的数据判断吗?

示例1

输入:

1

输出:

1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 2ms, 内存消耗: 280KB, 提交时间: 2022-08-05

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param n int整型 
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int judge(int n ) {
    // write code here
    char *p=&n;
    if(*p=1)
        return 1;
    else
        return 0;
}    

C 解法, 执行用时: 2ms, 内存消耗: 288KB, 提交时间: 2022-08-06

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param n int整型 
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
union{
    int dat;
    char c[4];
}X;
int judge(int n ) {
    // write code here
    int t0;
    X.dat = 0x01020304;
    t0 = X.c[0];
    if(t0 == 0x01)
    {
        return 0;
    }
    else return 1;
}

C 解法, 执行用时: 2ms, 内存消耗: 292KB, 提交时间: 2022-08-04

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param n int整型 
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int judge(int n ) {
    int test_i = n;
    unsigned char *c;
    c = (unsigned char *)(&test_i);
    
    if (test_i == 0)
    {
        return 1;
    }

    if ((*(c + 3) == (test_i % 0xff)) &&
        (*c == (test_i >> 24)))
    {
        return 0;
    }
    return 1;
}

C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2022-08-06

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param n int整型 
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int judge(int n ) {
    // write code here
    char* p = &n;
    n =0x1234;
    return *p == 0x34;
}

C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2022-08-05

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param n int整型 
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int judge(int n ) {
    // write code here
    char * p = &n;
    if (*p = 1){
        return 1;
    } else {
        return 0;
    }
}

上一题