Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | David Brown <david.brown@hesbynett.no> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: unsigned int |
| Date | 2016-08-03 14:02 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <nnsmgd$gcm$1@dont-email.me> (permalink) |
| References | (8 earlier) <nnpl0b$p7u$1@dont-email.me> <nnqaph$ho$1@dont-email.me> <nnqd6i$92c$1@dont-email.me> <nnqj06$u15$1@dont-email.me> <0584a001-91b8-48d9-80de-3c7db52f5aaa@googlegroups.com> |
On 02/08/16 19:16, supercat@casperkitty.com wrote: > On Tuesday, August 2, 2016 at 11:50:36 AM UTC-5, Les Cargill wrote: >> I simply have to disagree. The default 'C' int declaration is >> signed unless it's explicitly made unsigned. > > All ASCII characters are in the range 0..127, so all members of the C > Character Set are guaranteed have character codes in the range > 0..SCHAR_MAX regardless of CHAR_BITS. True - for a C implementation that uses ASCII. But the standards don't require ASCII, and C can be implemented with many different character sets as long as they cover the standard 26 letter Latin alphabet, 10 digits, and a range of punctuation and symbols. Historically, EBCDIC has probably been popular on some systems. And in modern tools, UTF-8 and Latin-1 (Windows CP1252, IIRC) are also common for the execution character set (if not necessarily for the source character set). Those use characters or encodings in the range 128-255 as well. > > Implementations which use non-ASCII character sets may have > characters whose codes are greater than SCHAR_MAX. That would imply > that unqualified `char` must be unsigned on such platforms, since all > members of the C character set are required to have non-negative > character codes. No, a "char" only needs to be able to store any element of the "basic execution character set". This can be a subset of the full execution character set. In real implementations using UTF-8, Latin-1, or another encoding (possibly multi-byte) for the execution character set would have ASCII as the "basic execution character set". > > On the flip side, a lot of code relies upon having all values of type > `char` be representable as type `int`; implementations where > `unsigned char` has a larger range than `signed int` would violate > that expectation of unqualified `char` were unsigned. > It is perfectly possible for a plain char to be an unsigned 16-bit value while an int is a signed 16-bit value - thus there are valid "char" values that cannot be represented as "int". On systems with 16-bit CHAR (such as some DSP's), it would not surprise me if this were the case.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: unsigned int "Osmium" <r124c4u102@comcast.net> - 2016-07-31 12:40 -0500
Re: unsigned int David Brown <david.brown@hesbynett.no> - 2016-08-01 11:01 +0200
Re: unsigned int James Kuyper <jameskuyper@verizon.net> - 2016-08-01 10:15 -0400
Re: unsigned int Les Cargill <lcargill99@comcast.com> - 2016-08-01 09:59 -0500
Re: unsigned int David Brown <david.brown@hesbynett.no> - 2016-08-01 17:21 +0200
Re: unsigned int Keith Thompson <kst-u@mib.org> - 2016-08-01 09:55 -0700
Re: unsigned int David Brown <david.brown@hesbynett.no> - 2016-08-01 22:42 +0200
Re: unsigned int supercat@casperkitty.com - 2016-08-01 14:18 -0700
Re: unsigned int Les Cargill <lcargill99@comcast.com> - 2016-08-01 13:11 -0500
Re: unsigned int Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-01 19:46 +0100
Re: unsigned int Les Cargill <lcargill99@comcast.com> - 2016-08-01 18:20 -0500
Re: unsigned int David Brown <david.brown@hesbynett.no> - 2016-08-02 10:18 +0200
Re: unsigned int Les Cargill <lcargill99@comcast.com> - 2016-08-02 09:35 -0500
Re: unsigned int Keith Thompson <kst-u@mib.org> - 2016-08-02 08:00 -0700
Re: unsigned int Les Cargill <lcargill99@comcast.com> - 2016-08-02 11:12 -0500
Re: unsigned int David Brown <david.brown@hesbynett.no> - 2016-08-02 17:11 +0200
Re: unsigned int Les Cargill <lcargill99@comcast.com> - 2016-08-02 11:55 -0500
Re: unsigned int supercat@casperkitty.com - 2016-08-02 10:16 -0700
Re: unsigned int David Brown <david.brown@hesbynett.no> - 2016-08-03 14:02 +0200
Re: unsigned int Keith Thompson <kst-u@mib.org> - 2016-08-03 08:58 -0700
Re: unsigned int James Kuyper <jameskuyper@verizon.net> - 2016-08-02 13:57 -0400
Re: unsigned int Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-02 19:30 +0100
Re: unsigned int Keith Thompson <kst-u@mib.org> - 2016-08-02 11:38 -0700
Re: unsigned int David Brown <david.brown@hesbynett.no> - 2016-08-03 14:12 +0200
Re: unsigned int David Brown <david.brown@hesbynett.no> - 2016-08-03 13:45 +0200
Re: unsigned int Keith Thompson <kst-u@mib.org> - 2016-08-01 12:02 -0700
Re: unsigned int David Brown <david.brown@hesbynett.no> - 2016-08-01 23:01 +0200
csiph-web