当前位置:网站首页>C language - bit segment
C language - bit segment
2022-07-06 08:03:00 【Orange cat】
Bit segment
- What is a bit segment ?
C Language allows bits in a structure (bit) Specifies the memory length of its members in units
Such members in bits are called bit segments . With bit segments, data can be stored in fewer bits .
Example :
above
_a : 2
It means occupy 2 individual bit position_b : 5
It means occupy 5 individual bit position_c : 10
It means occupy 10 individual bit position_d : 30
It means occupy 30 individual bit positionReview your knowledge :
8 bit = 1 byte
4 byte = A plastic surgery (int)
All the members above add up to 47 bit, Is probably The size of two reshapes
Then why is the answer 8 ?
So how does the median segment of the structure in the above example allocate space ?
Bit segment memory allocation
- The members of a segment can be int unsigned int signed int Or is it char ( It belongs to the plastic family ) type
- The space of the bit segment is based on 4 Bytes ( int ) perhaps 1 Bytes ( char ) The way to open up .
- Bit segments involve many uncertainties , Bit segments are not cross platform , Pay attention to portable program should avoid using bit segment
- The number of bits occupied by the bit field cannot exceed the maximum number of bits that the basic type can represent
That is, bit segments cannot be stored across bytes . for example :int It is Zhan 4 Bytes , Then it can only be 32 bit position , It can't be exceeded
Example :
struct S
{
char a:3;
char b:4;
char c:5;
char d:4;
};
int main()
{
struct S n = {
0 };
n.a = 10;
n.b = 12;
n.c = 3;
n.d = 4;
return 0;
}
The illustration :
This is vs 2022 Compiler test data
- I said before
The space of the bit segment is according to 4 Bytes ( int ) perhaps 1 Bytes ( char ) The way to open up
So the first time is to open up 4 individual int Type of space - Bit segment in
A byte
Internal data is used firstLow address
In the use ofHigh address
, Use... From right to left (char type )
If it is int type , It's a plastic surgery from right to left - When there is not enough space left in one space for the next member , It will be wasted
- Don't give it a name in the position segment , Unable to access the bit segment , But the calculation size still takes up space
- The bit segment cannot be & Address fetch operation
The cross platform problem of bit segment
- int It's uncertain whether a bit segment is treated as a signed number or an unsigned number .
- The number of the largest bits in the bit segment cannot be determined
for example :16 The machine is the largest 16,32 The machine is the largest 32, It's written in 27, stay 16 It's a plane
There will be problems with the device . - The members in the bit segment are allocated from left to right in memory , Or right to left allocation criteria have not yet been defined .
- When a structure contains two bit segments , The second segment is relatively large , Cannot hold the remaining bits of the first bit segment , yes
Discard the remaining bits or use , This is uncertain .
- summary : Compared to the structure , Bit segments can achieve the same effect , But it can save a lot of space , But there are cross platform problems
边栏推荐
- "Friendship and righteousness" of the center for national economy and information technology: China's friendship wine - the "unparalleled loyalty and righteousness" of the solidarity group released th
- 08- [istio] istio gateway, virtual service and the relationship between them
- Migrate data from CSV files to tidb
- 在 uniapp 中使用阿里图标
- [research materials] 2022 enterprise wechat Ecosystem Research Report - Download attached
- Document 2 Feb 12 16:54
- Tidb backup and recovery introduction
- Migrate data from a tidb cluster to another tidb cluster
- flask返回文件下载
- MES, APS and ERP are essential to realize fine production
猜你喜欢
Artcube information of "designer universe": Guangzhou implements the community designer system to achieve "great improvement" of urban quality | national economic and Information Center
[untitled]
Machine learning - decision tree
[research materials] 2021 China online high growth white paper - Download attached
[research materials] 2021 live broadcast annual data report of e-commerce - Download attached
[nonlinear control theory]9_ A series of lectures on nonlinear control theory
[factorial inverse], [linear inverse], [combinatorial counting] Niu Mei's mathematical problems
[t31zl intelligent video application processor data]
[count] [combined number] value series
"Friendship and righteousness" of the center for national economy and information technology: China's friendship wine - the "unparalleled loyalty and righteousness" of the solidarity group released th
随机推荐
Nc204382 medium sequence
Convolution, pooling, activation function, initialization, normalization, regularization, learning rate - Summary of deep learning foundation
MFC 给列表控件发送左键单击、双击、以及右键单击消息
Data governance: 3 characteristics, 4 transcendence and 3 28 principles of master data
TiDB备份与恢复简介
Upgrade tidb with tiup
07- [istio] istio destinationrule (purpose rule)
备份与恢复 CR 介绍
Yu Xia looks at win system kernel -- message mechanism
A Closer Look at How Fine-tuning Changes BERT
Data governance: metadata management
ESP series pin description diagram summary
[Yugong series] February 2022 U3D full stack class 011 unity section 1 mind map
49. Sound card driven article collection
861. Score after flipping the matrix
Artcube information of "designer universe": Guangzhou implements the community designer system to achieve "great improvement" of urban quality | national economic and Information Center
[factorial inverse], [linear inverse], [combinatorial counting] Niu Mei's mathematical problems
[Yugong series] February 2022 U3D full stack class 010 prefabricated parts
"Designer universe" Guangdong responds to the opinions of the national development and Reform Commission. Primary school students incarnate as small community designers | national economic and Informa
数据治理:数据质量篇