Path: csiph.com!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c Subject: Re: How to div only once to get remainder and quotient? Date: Thu, 12 Mar 2020 20:39:43 -0700 Organization: None to speak of Lines: 29 Message-ID: <877dzosz28.fsf@nosuchdomain.example.com> References: <877dzprsg4.fsf@bsb.me.uk> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: reader02.eternal-september.org; posting-host="55864d69c934fdbe22116d2b3b876e47"; logging-data="1617"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+7bWdlvrxFa5Iu8Pxex58o" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) Cancel-Lock: sha1:mhLjsd+aZ4RJVIDQN4JbLdDrOPQ= sha1:DYXDZ68ywFtDJW3+Jw0nrRWVzcQ= Xref: csiph.com comp.lang.c:150535 Ben Bacarisse writes: > Lew Pitcher writes: > >> On March 12, 2020 18:39, Francis Assissi wrote: >> >>>> *ptr = '0' + (number & 1); >>> *ptr = '0' ^ number & 1; >> >> While both statements generate the same results, I find the first statement >>>> *ptr = '0' + (number & 1); >> clearer as to it's intent. This statement says "*ptr shall contain either >> the character '0', or the character '0'+1". > > I might write > > *ptr = "01"[number & 1]; I might write *ptr = (number&1)["01"]; if I were in a particularly perverse mood. (I kid, I kid.) -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com Working, but not speaking, for Philips Healthcare void Void(void) { Void(); } /* The recursive call of the void */