经典笔试题:用C写一个函数测试当前机器大小端模式

“用C语言写一个函数测试当前机器的大小端模式”是一个经典的笔试题,如下使用两种方式进行解答:

1. 用union来测试机器的大小端

 1 #include <stdio.h>
 2
 3 union test
 4 {
 5     int a;
 6     char b;
 7 };
 8
 9 int endian_test(void)
10 {
11     union test t1;
12     t1.a = 1;
13     return t1.b;
14 }
15
16 int main(void)
17 {
18     int i = endian_test();
19     if(i == 1)
20     {
21         printf("is little endian.\n");
23     }
24     else
25     {
26         printf("is big endian.\n");
28     }
29
30     printf("i = %d.\n", i);
31
32     return 0;
33 }

2. 用指针测试机器大小端

1 #include <stdio.h>
2
3 int main()
4 {
5   int a = 1;
6   char b = *((char *)&a);
7
8   return 0;
9 }

注: 通信系统中,通信双方数据传送方式中,先发低字节的方式叫小端,先发高字节的方式叫大端。

时间: 2024-10-10 05:43:28

经典笔试题:用C写一个函数测试当前机器大小端模式的相关文章

Java面试题从零开始:写一个函数把字符串反转

前言:为了能够找一个代表我从零开始的诗词,我挖空心思去找,然而怎么也找不到一个贴合我心意的,被迫上了度娘也不曾找到.真想把小学一年级的语文课本拿出来好好的通读一遍,肯定能找到答案. 好了,既然找不到也不必耿耿于怀了.今天读了<高效能程序员的修炼>第四章,发现自己好烂,如果按照作者的看法,我是无论如何都入不了他的法眼,于是乎,我告诉自己,从零开始,把作者提出的面试题按照Java来写一遍,无论是参考别人还是自己略能想得到的办法,亲自动手把它们敲出来,并且记录下来吧! 写一个函数把字符串反转,作为本

经典笔试题:简单实现一个死锁的例子

package com.gaopeng.multithread; /** * 简单实现一个死锁例子 * * @author gaopeng * */ public class DeadLockTest { // 创建资源 private static Object resourceA = new Object(); private static Object resourceB = new Object(); public static void main(String[] args) { //

面试题--&gt;写一个函数,返回一个数组中所有元素被第一个元素除的结果

1 package com.rui.test; 2 3 import java.util.Random; 4 5 /** 6 * @author poseidon 7 * @version 1.0 8 * @date:2015年10月25日 上午11:12:24 9 * @description: 面试题-->写一个函数,返回一个数组中所有元素被第一个元素除的结果 10 * 陷阱: 11 * 1.循环需要倒着写,为什么? 12 * 想想顺着写循环的结果,第一个元素的值会发生变化门后面再除就会有问

【转】嵌入式软件工程师经典笔试题

嵌入式软件工程师经典笔试题 > 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中 有多少秒而不是计算出实际的值,是更清晰而没有代价的. 3).

转:嵌入式软件工程师经典笔试题

> 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)  #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的. 3). 意识到这个表达式将使一个1

【转载】经典10道c/c++语言经典笔试题(含全部所有参考答案)

经典10道c/c++语言经典笔试题(含全部所有参考答案) 1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n)[10]; struct MyStruct { char dda; double dda1; int type ; }; MyStruct k; printf("%d %d %d %d %d",sizeof(p),sizeof(q),sizeof(m),sizeof(n),sizeof(

iO经典笔试题整理

iOS经典笔试题整理---2014年8月 1.回答person的retainCount值,并解释为什么 Person * per = [[Person alloc] init]; 此时person 的retainCount的值是1self.person = per; 在self.person 时,如果是assign,person的 retainCount的值不变,仍为1若是:retain person的retainCount的值加1,变为2 若是:copy person的retainCount值

C++经典笔试题详解

1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变. 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问.它是一个本地的全局变量. 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用.那就是,这个函数被限制在声明它的模块的本地范围内使用 2.引用与指针有什么区别? 1) 引用必须被初始化,指针不必. 2) 引用初始化以后不能被改变,指针可以改变所指的对象.

【源码】用1,2,2,3,4,5这六个数字,写一个函数,打印出所有不同的排序,要求:4不能放在第三位,3与5不能相连(C语言实现)

帮朋友做的,好像是一个面试题.暴力方式. #include <stdio.h> #include <stdlib.h> #include <string.h> //判断这个数是不是由1.2.2.3.4.5几位数字组成 int func(int n) { int a[5] = {0}; for(int i = 0; i < 6; i++) { int bit = n % 10; n /= 10; switch(bit) { case 1: a[0]++; break