delorie.com/archives/browse.cgi | search |
From: | "Tim Nicholson" <T DOT J DOT Nicholson AT btinternet DOT com> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: Bit field query |
Date: | Thu, 4 Oct 2001 21:26:34 +0100 |
Organization: | Skyforce avionics Limited |
Lines: | 88 |
Message-ID: | <9pigq7$art$1@uranium.btinternet.com> |
References: | <9pidst$kgu$1 AT epos DOT tesco DOT net> <9pigh8$abp$1 AT uranium DOT btinternet DOT com> |
NNTP-Posting-Host: | host62-7-116-236.btinternet.com |
X-Priority: | 3 |
X-MSMail-Priority: | Normal |
X-Newsreader: | Microsoft Outlook Express 5.50.4133.2400 |
X-MimeOLE: | Produced By Microsoft MimeOLE V5.50.4133.2400 |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
Correction, it appears in the right most bit! - Sorry, I knew I should put L & R on my boots ;-) Tim "Tim Nicholson" <T DOT J DOT Nicholson AT btinternet DOT com> wrote in message news:9pigh8$abp$1 AT uranium DOT btinternet DOT com... > B0 is the LSB and apears in the leftmost bit of the 32 bit field. The > following program will prove this. > > Tim > > //Compile this to show the bit field. > > struct bit_field > { > unsigned int b0 : 1; > unsigned int b1 : 1; > unsigned int b2 : 1; > unsigned int b3 : 1; > unsigned int b4 : 1; > unsigned int b5 : 1; > unsigned int b6 : 1; > unsigned int b7 : 1; > }; > > int main(void) > { > struct bit_field my_bits; > unsigned int *my_word; > short int i; > > my_word = (unsigned int *) &my_bits; > > *my_word = 0; > > my_bits.b0 = 1; > my_bits.b5 = 1; > for (i=0; i<32;i++) > { > printf("%d", (*my_word) & 0x80000000 ? 1:0); > *my_word <<= 1; > } > printf("\n"); > } > "Graham Warren" <Moosehead AT tesco DOT net> wrote in message > news:9pidst$kgu$1 AT epos DOT tesco DOT net... > > I have a question about bit-fields. > > > > In a program I have defined a bit-field using the code shown below. > > > > > > /* define bit-field */ > > > > struct { > > unsigned int b0 : 1; > > unsigned int b1 : 1; > > unsigned int b2 : 1; > > unsigned int b3 : 1; > > unsigned int b4 : 1; > > unsigned int b5 : 1; > > unsigned int b6 : 1; > > unsigned int b7 : 1; > > } bit_field; > > > > /* */ > > > > > > > > My questions are: would bit_field.b0 be the furthest left or furthest > right > > bit if the byte is written out 00000000? > > Would this change if more bits were defined in the bit field to make it > > spill over into a larger than 1 byte area? > > > > Also which bit in 00000000 is referred to as the most-significant and > which > > is the least-significant? > > > > > > Thankyou > > Graham Warren > > > > > >
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |