还是在笔试时候接触的题目,弄明白这个问题还是花费了不少的时间的。
首先说的是位域的基本概念,发飞了这么多的时间,就是败在了这儿~
位域的使用是为了节省存储空间,用来声明使用特定数目的位。位域标识符后面冒号所跟的数字即为要使用的位数。而不是将整个存储单元按比例划分,一开始臆测为按比例划分了。
看一下题目
typedef struct AA
{
int b1:5;
int b2:2;
}AA;
void main()
{
AA aa;
char cc[100];
strcpy(cc,"0123456789abcdefghijklmnopqrstuvwxyz");
memcpy(&aa,cc,sizeof(AA));
cout << aa.b1 <<endl;
cout << aa.b2 <<endl;
}
经过内存拷贝函数后,aa的存储单元存储的是字符串"0123”,具体的信息为该字符串的ASCII码30 31 32 33,显然b1占用的是30的最低5位,b2占用的是接下来的2位。
30的存储二进制信息为0011 0000.
最低5位1 0000,扩展为32位int,并据补码求得原码即为-16
接下来2为01 ,扩展后可的其原码为1.
故最后输出的的
-16
1
分享到:
相关推荐
在给出的【部分内容】中,我们可以提取和整理出很多C语言的关键知识点。这些知识点涵盖了C语言的基本语法、数据类型、运算符、控制结构等,具体如下: 1. 基本语法:C语言程序的入口是main()函数。例如:int main()...
以下是对给定文件中提及的C语言知识点的详细总结,适合考试复习和深入理解。 ### 第1章 C语言概述 #### 1.1 C语言标识符 C语言中的标识符用于命名变量、函数、数组等实体。一个合法的标识符必须遵循以下规则: - ...
### 深入学习C语言知识点Checklist #### 字符串 **学习时间:1.5周** **知识点Checklist** 1. **strlen()函数的返回值类型:** `strlen()` 函数返回值类型为 `size_t`,该类型通常在 `<stddef.h>` 头文件中定义。`...
本笔记涵盖了C语言程序设计的知识点和例题,旨在帮助读者深入了解C语言-programming的基础知识和实践应用。下面是笔记的详细摘要: 变量和数据类型 * 变量的定义和声明 * 变量的数据类型,包括整数、浮点数、字符...
核心知识点:C语言中的位运算符及其应用 ### 一、位运算符详解 #### 1. 按位与运算(&) 按位与运算符`&`用于两个数的每一位进行逻辑与运算。如果两个相应的二进位都是1,则结果位为1;否则,结果位为0。这个...
本文将深入探讨“swap_uchar.zip”文件所涉及的知识点,包括位域赋值和位赋值,以及如何实现一个字节8bit的反转。 首先,让我们了解“位域赋值”。在C语言中,位域允许我们将内存中的特定位范围定义为特定类型的...
### C语言面试必备知识点详解 #### 一、基础语法和数据类型 - **基本数据类型**:`int`, `char`, `float`, `double` 是C语言中最常用的几种基本数据类型。例如,`int` 用于存储整数,`char` 用于存储单个字符,`...
### 北大C考试试题知识点解析 #### 一、选择题知识点详解 ##### 1. C语言中的实型常量可以表示为: - **正确答案:b. 实型** - **知识点解析:** 在C语言中,实型常量是指用来表示小数或者指数形式的数。例如 ...
第10章对C语言中的若干容易让开发者误解误用的陷阱知识点进行了剖析;第11章则对所有程序员必须掌握的几种算法进行了详细的讲解;附录经验性地总结了如何养成良好的编码习惯,这对所有开发者都尤为重要。 本书主要...
知识点 2: C 语言编程 在该设计中,使用 C 语言实现洗衣机控制程序。C 语言是一种高效、灵活的编程语言,广泛应用于嵌入式系统开发。 知识点 3: rég51.h 库函数 在该设计中,使用 rég51.h 库函数实现单片机的...
2.9 本章知识点综合应用 案例一 案例二 案例三 2.10 小结 2.11 习题 第2篇 C语言编程入门 第3章 迎战:选择结构设计 3.1 入门选择结构简介 3.2 选择结构设计的实现—if语句 3.2.1 if结构语法 3.2.2 if结构程序实例 ...
本文将详细解释C语言笔试题中的知识点,涵盖C语言基础知识、指针、结构体、枚举类型、字节对齐等方面的知识。 1. 填空题 本题考察C语言基础知识,包括变量赋值、increment操作符的使用和printf函数的使用。 * `a ...
本资源摘要信息主要介绍使用C语言操作DSP的寄存器学习教案,涵盖了DSP寄存器的基本概念、寄存器的C语言访问、SCI寄存器的介绍、位定义和寄存器结构体等知识点。 一、DSP寄存器的基本概念 DSP寄存器是数字信号...
### C程序员面试必看知识点详解 #### 知识点一:C语言中处理绝对地址与函数调用 在C语言中,对特定的绝对地址进行赋值或调用,涉及到了指针类型转换和函数指针的概念。例如,对绝对地址`0x100000`赋值为`1234`可以...
嵌入式软件工程师的C语言笔试题涉及多个知识点,涵盖了数据类型、指针、内存管理、宏定义、结构体、中断处理、网络协议、以及C++字符串处理等多个方面。以下是对这些知识点的详细说明: 1. 基本数据类型的大小: -...
根据给定的文档标题、描述、标签以及部分内容,下面是对各个关键知识点的详细解析: ### 1. C 语言中的指针和内存泄漏 #### 引言 在使用C语言进行编程时,指针和内存泄漏是开发者经常遇到且需要解决的问题。这些...
在高级C语言编程中,掌握一系列关键知识点是至关重要的。以下是一些主要的要点: 1. **指针和内存管理**: - 指针是C语言的精髓,理解指针的工作方式以及如何安全地使用它们至关重要。内存泄漏是程序运行时常见的...
在 C++ 中,还有其他一些重要的知识点,例如预处理器、宏、结构体对齐、位域、反序等。预处理器是 C++ 编译器的预处理阶段,它可以用来定义宏、包括头文件、条件编译等。宏是一种预处理指令,它可以用来定义常数、...