`

C位域的小知识点

阅读更多
还是在笔试时候接触的题目,弄明白这个问题还是花费了不少的时间的。

首先说的是位域的基本概念,发飞了这么多的时间,就是败在了这儿~
位域的使用是为了节省存储空间,用来声明使用特定数目的位。位域标识符后面冒号所跟的数字即为要使用的位数。而不是将整个存储单元按比例划分,一开始臆测为按比例划分了。

看一下题目

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语言知识点大全.pdf

    在给出的【部分内容】中,我们可以提取和整理出很多C语言的关键知识点。这些知识点涵盖了C语言的基本语法、数据类型、运算符、控制结构等,具体如下: 1. 基本语法:C语言程序的入口是main()函数。例如:int main()...

    C语言知识点总结 考试复习、回顾知识点

    以下是对给定文件中提及的C语言知识点的详细总结,适合考试复习和深入理解。 ### 第1章 C语言概述 #### 1.1 C语言标识符 C语言中的标识符用于命名变量、函数、数组等实体。一个合法的标识符必须遵循以下规则: - ...

    深入学习C语言知识点checklist

    ### 深入学习C语言知识点Checklist #### 字符串 **学习时间:1.5周** **知识点Checklist** 1. **strlen()函数的返回值类型:** `strlen()` 函数返回值类型为 `size_t`,该类型通常在 `&lt;stddef.h&gt;` 头文件中定义。`...

    (完整版)C语言程序设计笔记-知识点及例题.doc

    本笔记涵盖了C语言程序设计的知识点和例题,旨在帮助读者深入了解C语言-programming的基础知识和实践应用。下面是笔记的详细摘要: 变量和数据类型 * 变量的定义和声明 * 变量的数据类型,包括整数、浮点数、字符...

    单片机C语言编程学习小结

    核心知识点:C语言中的位运算符及其应用 ### 一、位运算符详解 #### 1. 按位与运算(&) 按位与运算符`&`用于两个数的每一位进行逻辑与运算。如果两个相应的二进位都是1,则结果位为1;否则,结果位为0。这个...

    swap_uchar.zip_swap_位域赋值_位赋值

    本文将深入探讨“swap_uchar.zip”文件所涉及的知识点,包括位域赋值和位赋值,以及如何实现一个字节8bit的反转。 首先,让我们了解“位域赋值”。在C语言中,位域允许我们将内存中的特定位范围定义为特定类型的...

    面试资格确认c语言,一些常见的知识点以及简要说明

    ### C语言面试必备知识点详解 #### 一、基础语法和数据类型 - **基本数据类型**:`int`, `char`, `float`, `double` 是C语言中最常用的几种基本数据类型。例如,`int` 用于存储整数,`char` 用于存储单个字符,`...

    北大C考试试题

    ### 北大C考试试题知识点解析 #### 一、选择题知识点详解 ##### 1. C语言中的实型常量可以表示为: - **正确答案:b. 实型** - **知识点解析:** 在C语言中,实型常量是指用来表示小数或者指数形式的数。例如 ...

    C语言进阶 作者 Wrestle.Wu

    第10章对C语言中的若干容易让开发者误解误用的陷阱知识点进行了剖析;第11章则对所有程序员必须掌握的几种算法进行了详细的讲解;附录经验性地总结了如何养成良好的编码习惯,这对所有开发者都尤为重要。 本书主要...

    基于的51单片机全自动洗衣机设计.doc

    知识点 2: C 语言编程 在该设计中,使用 C 语言实现洗衣机控制程序。C 语言是一种高效、灵活的编程语言,广泛应用于嵌入式系统开发。 知识点 3: rég51.h 库函数 在该设计中,使用 rég51.h 库函数实现单片机的...

    C语言编程兵书(完整扫描版 )pdf格式 电子书

    2.9 本章知识点综合应用 案例一 案例二 案例三 2.10 小结 2.11 习题 第2篇 C语言编程入门 第3章 迎战:选择结构设计 3.1 入门选择结构简介 3.2 选择结构设计的实现—if语句 3.2.1 if结构语法 3.2.2 if结构程序实例 ...

    c语言笔试题.docx

    本文将详细解释C语言笔试题中的知识点,涵盖C语言基础知识、指针、结构体、枚举类型、字节对齐等方面的知识。 1. 填空题 本题考察C语言基础知识,包括变量赋值、increment操作符的使用和printf函数的使用。 * `a ...

    使用C语言操作DSP的寄存器学习教案.pptx

    本资源摘要信息主要介绍使用C语言操作DSP的寄存器学习教案,涵盖了DSP寄存器的基本概念、寄存器的C语言访问、SCI寄存器的介绍、位定义和寄存器结构体等知识点。 一、DSP寄存器的基本概念 DSP寄存器是数字信号...

    c程序员面试必看

    ### C程序员面试必看知识点详解 #### 知识点一:C语言中处理绝对地址与函数调用 在C语言中,对特定的绝对地址进行赋值或调用,涉及到了指针类型转换和函数指针的概念。例如,对绝对地址`0x100000`赋值为`1234`可以...

    嵌入式软件工程师C语言笔试题.pdf

    嵌入式软件工程师的C语言笔试题涉及多个知识点,涵盖了数据类型、指针、内存管理、宏定义、结构体、中断处理、网络协议、以及C++字符串处理等多个方面。以下是对这些知识点的详细说明: 1. 基本数据类型的大小: -...

    免费下载:C语言难点分析整理.doc

    根据给定的文档标题、描述、标签以及部分内容,下面是对各个关键知识点的详细解析: ### 1. C 语言中的指针和内存泄漏 #### 引言 在使用C语言进行编程时,指针和内存泄漏是开发者经常遇到且需要解决的问题。这些...

    高级C语言 C 语言编程要点

    在高级C语言编程中,掌握一系列关键知识点是至关重要的。以下是一些主要的要点: 1. **指针和内存管理**: - 指针是C语言的精髓,理解指针的工作方式以及如何安全地使用它们至关重要。内存泄漏是程序运行时常见的...

    C++ 面试C++ 面试必看C++ 面试必看C++ 面试必看

    在 C++ 中,还有其他一些重要的知识点,例如预处理器、宏、结构体对齐、位域、反序等。预处理器是 C++ 编译器的预处理阶段,它可以用来定义宏、包括头文件、条件编译等。宏是一种预处理指令,它可以用来定义常数、...

Global site tag (gtag.js) - Google Analytics