[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: master ac1d15e95c 1/2: ; * src/data.c (Fash): More precise doc strin
From: |
Eli Zaretskii |
Subject: |
Re: master ac1d15e95c 1/2: ; * src/data.c (Fash): More precise doc string |
Date: |
Tue, 19 Jul 2022 22:04:24 +0300 |
> From: Mattias Engdegård <mattiase@acm.org>
> Date: Tue, 19 Jul 2022 19:46:24 +0200
> Cc: emacs-devel@gnu.org
>
> 19 juli 2022 kl. 17.54 skrev Eli Zaretskii <eliz@gnu.org>:
>
> > The operation is "bit shift", so
> > the most natural way of describing it is in terms of shifting bits.
> > No?
>
> Not necessarily. The user inputs numbers and gets a number out, not bit
> sequences, so it makes sense to describe the behaviour in arithmetic terms.
> (We're not describing a processor instruction that manipulates registers;
> `ash` is an operation on mathematical integers.)
>
> A bitwise description would require knowledge of two's complement
> representation which you dismissed earlier. If it's acceptable to complement
> the arithmetic description with something that refers to such representation,
> then we could have:
>
> If we view VALUE as a binary two's complement number, then shifting left
> introduce new 0-bits to the right and shifting right remove rightmost bits.
> Since negative numbers have an infinite supply of 1-bits to the left, a
> negative number remains negative no matter how far it is shifted in either
> direction.
Sigh. You know what, forget about this. I will fix this myself, time
permitting.
Re: master ac1d15e95c 1/2: ; * src/data.c (Fash): More precise doc string, Stefan Monnier, 2022/07/19