Meinews.de  


Zurück   Meinews.de > Forum > Newsgroups de.comp.lang.* Forum > Newsgroup de.comp.lang.c
Registrieren FAQ Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

Newsgroup de.comp.lang.c Die Programmiersprache C (ISO, ANSI, K&R).

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10-09-2009, 01:23 PM
Gerald Breuer
 
Beiträge: n/a
Standard C-Buch für Lau

Das Buch "C von A bis Z" von Galileio-Computing gibt's
jetzt als Download:

http://openbook.galileocomputing.de/c_von_a_bis_z/
http://download.galileo-press.de/ope...on_a_bis_z.zip
Mit Zitat antworten
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Meinews.de
Standard Sponsored Links

  #2  
Alt 10-09-2009, 06:26 PM
Stefan Reuther
 
Beiträge: n/a
Standard Re: C-Buch für Lau

Gerald Breuer wrote:
> Das Buch "C von A bis Z" von Galileio-Computing gibt's
> jetzt als Download:
>
> http://openbook.galileocomputing.de/c_von_a_bis_z/


Das ist jetzt nicht wirklich neu. Das Ding ist doch hier schon vor
Ewigkeiten verrissen worden.

"5.2 Der Datentyp »int« (Integer)
Der Datentyp int muss, gemäß ANSI C, mindestens eine Größe von zwei Byte
aufweisen. Mit diesen zwei Bytes lässt sich ein Zahlenraum von -32768
bis +32767 beschreiben."

Zwei Sätze, zwei Fehler.


Stefan

Mit Zitat antworten
  #3  
Alt 10-10-2009, 05:13 PM
Dr4x
 
Beiträge: n/a
Standard Re: C-Buch für Lau

Stefan Reuther schrieb:
> Gerald Breuer wrote:
>> Das Buch "C von A bis Z" von Galileio-Computing gibt's
>> jetzt als Download:
>>
>> http://openbook.galileocomputing.de/c_von_a_bis_z/

>
> Das ist jetzt nicht wirklich neu. Das Ding ist doch hier schon vor
> Ewigkeiten verrissen worden.
>
> "5.2 Der Datentyp »int« (Integer)
> Der Datentyp int muss, gemäß ANSI C, mindestens eine Größe von zwei Byte
> aufweisen. Mit diesen zwei Bytes lässt sich ein Zahlenraum von -32768
> bis +32767 beschreiben."
>
> Zwei Sätze, zwei Fehler.
>
>
> Stefan
>

Da ich auch noch C lerne würde ich gerne wissen welche zwei Fehler das
sind. Dankeschön

Dr4x
Mit Zitat antworten
  #4  
Alt 10-10-2009, 05:42 PM
Stefan Reuther
 
Beiträge: n/a
Standard Re: C-Buch für Lau

Dr4x wrote:
> Stefan Reuther schrieb:
>> "5.2 Der Datentyp »int« (Integer)
>> Der Datentyp int muss, gemäß ANSI C, mindestens eine Größe von zwei Byte
>> aufweisen. Mit diesen zwei Bytes lässt sich ein Zahlenraum von -32768
>> bis +32767 beschreiben."
>>
>> Zwei Sätze, zwei Fehler.

>
> Da ich auch noch C lerne würde ich gerne wissen welche zwei Fehler das
> sind. Dankeschön


Der minimale Wertebereich ist -32767 .. +32767. Eine Minimalgröße in
Bytes wird nicht gefordert. Auf dem Motorola 56000 reicht ein Byte, da
das dort 24 Bits hat.

Letztlich finde ich mit drei Sekunden Suche in meinem Newsspool einen
Verriss von 2006, <x3BD65.136*ID-80798.user.dfncis.de>, und beim ersten
Überfliegen gilt der noch. Der Fairness halber sei gesagt, dass es
durchaus schlechteres gibt als das "openbook"; die Tatsache, dass ein
Byte nicht unbedingt 8 Bit haben muss (sonst würde es ja Oktett heißen)
wird immerhin erwähnt.


Stefan

Mit Zitat antworten
  #5  
Alt 10-10-2009, 06:34 PM
Dr4x
 
Beiträge: n/a
Standard Re: C-Buch für Lau


Stefan Reuther schrieb:
> Dr4x wrote:
>> Stefan Reuther schrieb:
>>> "5.2 Der Datentyp »int« (Integer)
>>> Der Datentyp int muss, gemäß ANSI C, mindestens eine Größe von zwei Byte
>>> aufweisen. Mit diesen zwei Bytes lässt sich ein Zahlenraum von -32768
>>> bis +32767 beschreiben."
>>>
>>> Zwei Sätze, zwei Fehler.

>> Da ich auch noch C lerne würde ich gerne wissen welche zwei Fehler das
>> sind. Dankeschön

>
> Der minimale Wertebereich ist -32767 .. +32767. Eine Minimalgröße in
> Bytes wird nicht gefordert. Auf dem Motorola 56000 reicht ein Byte, da
> das dort 24 Bits hat.

Ich habe zwar nicht die große Ahnung, aber wenn mit dem Zweierkomplement
http://de.wikipedia.org/wiki/Zweierkomplement gerechnet wird dann ist
doch der Wertebereich für 16bit von -32768 bis +32767 da hier die 0 nur
positiv angesehen wird.

Für mich ist das wichtig zu wissen da ich nichts Falsches lernen möchte.
>
> Letztlich finde ich mit drei Sekunden Suche in meinem Newsspool einen
> Verriss von 2006, <x3BD65.136*ID-80798.user.dfncis.de>, und beim ersten
> Überfliegen gilt der noch. Der Fairness halber sei gesagt, dass es
> durchaus schlechteres gibt als das "openbook"; die Tatsache, dass ein
> Byte nicht unbedingt 8 Bit haben muss (sonst würde es ja Oktett heißen)
> wird immerhin erwähnt.
>
>
> Stefan
>

Mit Zitat antworten
  #6  
Alt 10-10-2009, 06:51 PM
Joachim Schmitz
 
Beiträge: n/a
Standard Re: C-Buch für Lau

Dr4x wrote:
> Stefan Reuther schrieb:
>> Dr4x wrote:
>>> Stefan Reuther schrieb:
>>>> "5.2 Der Datentyp »int« (Integer)
>>>> Der Datentyp int muss, gemäß ANSI C, mindestens eine Größe von
>>>> zwei Byte aufweisen. Mit diesen zwei Bytes lässt sich ein
>>>> Zahlenraum von -32768 bis +32767 beschreiben."
>>>>
>>>> Zwei Sätze, zwei Fehler.
>>> Da ich auch noch C lerne würde ich gerne wissen welche zwei Fehler
>>> das sind. Dankeschön

>>
>> Der minimale Wertebereich ist -32767 .. +32767. Eine Minimalgröße in
>> Bytes wird nicht gefordert. Auf dem Motorola 56000 reicht ein Byte,
>> da das dort 24 Bits hat.

> Ich habe zwar nicht die große Ahnung, aber wenn mit dem
> Zweierkomplement http://de.wikipedia.org/wiki/Zweierkomplement
> gerechnet wird dann ist doch der Wertebereich für 16bit von -32768
> bis +32767 da hier die 0 nur positiv angesehen wird.


Und der Standard legt sich eben nicht aud dieses Zweierkomplement fest.

Tschö, Jojo

Mit Zitat antworten
  #7  
Alt 10-10-2009, 06:55 PM
Stefan Reuther
 
Beiträge: n/a
Standard Re: C-Buch für Lau

Dr4x wrote:
^^^^ da fehlt übrigens was.

> Stefan Reuther schrieb:
>> Der minimale Wertebereich ist -32767 .. +32767. Eine Minimalgröße in
>> Bytes wird nicht gefordert. Auf dem Motorola 56000 reicht ein Byte, da
>> das dort 24 Bits hat.

>
> Ich habe zwar nicht die große Ahnung, aber wenn mit dem Zweierkomplement
> http://de.wikipedia.org/wiki/Zweierkomplement gerechnet wird dann ist
> doch der Wertebereich für 16bit von -32768 bis +32767 da hier die 0 nur
> positiv angesehen wird.


Wie du schon schreibst: *wenn* mit dem Zweierkomplement gerechnet wird.
C fordert aber nicht, dass im Zweierkomplement gerechnet wird.

Und eh mir hier jemand Pedanterie vorwirft: man kann eine Menge
nützlichen Code schreiben, ohne Annahmen wie "ein int hat zwei Bytes"
oder "ein Byte hat 8 Bits" oder "Zweierkomplement" zu nutzen.


Stefan

Mit Zitat antworten
  #8  
Alt 10-10-2009, 06:57 PM
Juergen Ilse
 
Beiträge: n/a
Standard Re: C-Buch für Lau

Hallo,

Dr4x <Dr4x*gmx.de> wrote:
> Stefan Reuther schrieb:
>> Dr4x wrote:
>>> Stefan Reuther schrieb:
>>>> "5.2 Der Datentyp »int« (Integer)
>>>> Der Datentyp int muss, gemäß ANSI C, mindestens eine Größe von zwei Byte
>>>> aufweisen. Mit diesen zwei Bytes lässt sich ein Zahlenraum von -32768
>>>> bis +32767 beschreiben."
>>>> Zwei Sätze, zwei Fehler.
>>> Da ich auch noch C lerne würde ich gerne wissen welche zwei Fehler das
>>> sind. Dankeschön

>> Der minimale Wertebereich ist -32767 .. +32767. Eine Minimalgröße in
>> Bytes wird nicht gefordert. Auf dem Motorola 56000 reicht ein Byte, da
>> das dort 24 Bits hat.

> Ich habe zwar nicht die große Ahnung, aber wenn mit dem Zweierkomplement
> http://de.wikipedia.org/wiki/Zweierkomplement gerechnet wird dann ist
> doch der Wertebereich für 16bit von -32768 bis +32767 da hier die 0 nur
> positiv angesehen wird.


Der C-Standard fordert kein Zweierkomplement. Einerkomplement ist ebenfalls
moeglich, und dann waere der Wertebereich bei 16Bit-ints nur -32767 - 32767.

Tschuess,
Juergen Ilse (juergen*usenet-verwaltung.de)
--
Ein Domainname (auch wenn er Teil einer Mailadresse ist) ist nur ein Name,
nicht mehr und nicht weniger ...
Mit Zitat antworten
  #9  
Alt 10-10-2009, 07:17 PM
Dr4x
 
Beiträge: n/a
Standard Re: C-Buch für Lau

Juergen Ilse schrieb:
> Hallo,
>
> Dr4x <Dr4x*gmx.de> wrote:
>> Stefan Reuther schrieb:
>>> Dr4x wrote:
>>>> Stefan Reuther schrieb:
>>>>> "5.2 Der Datentyp »int« (Integer)
>>>>> Der Datentyp int muss, gemäß ANSI C, mindestens eine Größe von zwei Byte
>>>>> aufweisen. Mit diesen zwei Bytes lässt sich ein Zahlenraum von -32768
>>>>> bis +32767 beschreiben."
>>>>> Zwei Sätze, zwei Fehler.
>>>> Da ich auch noch C lerne würde ich gerne wissen welche zwei Fehler das
>>>> sind. Dankeschön
>>> Der minimale Wertebereich ist -32767 .. +32767. Eine Minimalgröße in
>>> Bytes wird nicht gefordert. Auf dem Motorola 56000 reicht ein Byte, da
>>> das dort 24 Bits hat.

>> Ich habe zwar nicht die große Ahnung, aber wenn mit dem Zweierkomplement
>> http://de.wikipedia.org/wiki/Zweierkomplement gerechnet wird dann ist
>> doch der Wertebereich für 16bit von -32768 bis +32767 da hier die 0 nur
>> positiv angesehen wird.

>
> Der C-Standard fordert kein Zweierkomplement. Einerkomplement ist ebenfalls
> moeglich, und dann waere der Wertebereich bei 16Bit-ints nur -32767 - 32767.
>
> Tschuess,
> Juergen Ilse (juergen*usenet-verwaltung.de)


Ok, dann sind also die Wertangaben rein abhängig von der Implementierung.
Mit Zitat antworten
  #10  
Alt 10-10-2009, 08:20 PM
Michael Schumacher
 
Beiträge: n/a
Standard Re: C-Buch für Lau

Stefan Reuther wrote:

> Dr4x wrote:
>> Stefan Reuther schrieb:
>>> "5.2 Der Datentyp »int« (Integer)
>>> Der Datentyp int muss, gemäß ANSI C, mindestens eine Größe von zwei Byte
>>> aufweisen. Mit diesen zwei Bytes lässt sich ein Zahlenraum von -32768
>>> bis +32767 beschreiben."
>>>
>>> Zwei Sätze, zwei Fehler.

>>
>> Da ich auch noch C lerne würde ich gerne wissen welche zwei Fehler das
>> sind. Dankeschön

>
> Der minimale Wertebereich ist -32767 .. +32767. Eine Minimalgröße in
> Bytes wird nicht gefordert.


Das ist auch unnötig, denn für diesen Wertebereich benötigt man zur
dualen Darstellung 16 binäre Stellen -- mithin 16 Bits, die solche
Werte effektiv abbilden. Da ein Byte seit mindestens 40 Jahren aus
acht Speicherbits besteht, sind also -- genau wie oben geschrieben --
mindestens zwei Bytes für den Datentyp "int" vonnöten.

Natürlich kann ein Byte mehr oder weniger als 8 Bits enthalten:
die meisten hochwertigen RAM-Riegel benutzen mindestens 1-2 Bits
zusätzlich pro 8-bit-Byte, um Speicherfehler zu erkennen oder gar
zu beheben (Parity/ECC), ebenso andere Datenträger (von Floppy bis
CD/DVD) oder auch UARTs, und bei Microcontrollern (MCUs) kann ein
Byte auch mal aus keinem Bit bestehen, oder nur "hier und da" mal
einem -- aber wenn es um Datenspeicherung geht, hat ein Byte netto
*immer* acht signifikante Bits.

> Auf dem Motorola 56000 reicht ein Byte, da
> das dort 24 Bits hat.


Nein, das ist dort die Größe eines "Maschinenworts", d.h. die
kleinste physikalische Bitbreite, mit der die CPU selbst auf den
Speicher zugreifen kann. Der 56k ist ein spezialisierter Prozessor
(DSP), deshalb machen 24 Bits/3 Bytes als Speicher-Entität Sinn,
genau wie bei "jüngeren" Grafikchips (GPUs), die -- wenn auch aus
anderen Gründen -- immer vier Bytes adressieren, obwohl sie nur drei
davon brauchen (die "ganz modernen" GPUs benutzen das vierte Byte
optional für Alpha-Blending-Werte oder auch als Safeguards bei
Berechnungen, etc.).

> Letztlich finde ich mit drei Sekunden Suche in meinem Newsspool einen
> Verriss von 2006, <x3BD65.136*ID-80798.user.dfncis.de>, und beim ersten
> Überfliegen gilt der noch. Der Fairness halber sei gesagt, dass es
> durchaus schlechteres gibt als das "openbook"; die Tatsache, dass ein
> Byte nicht unbedingt 8 Bit haben muss (sonst würde es ja Oktett heißen)
> wird immerhin erwähnt.


Immerhin! Den zweiten Fehler im zweiten Satz bist Du noch schuldig
geblieben, aber der hängt ja auch mit dem ersten eng zusammen, und
der ist kein wirklicher Fehler. Für mich kein Grund zum Verriß des
Buches, aber ich habe es auch nicht gelesen und mich nur auf Deine
Kritikpunkte bezogen.

Letztlich kann ein C-Lehrbuch ohnehin auch nur "Erste Hilfe" leisten;
entscheidend ist, daß man die Grundlagen versteht, ausprobiert und
praktisch übt, und akzeptiert, daß C ein Oberbegriff für eine Sprache
ist, die unterschiedliche Compiler-Hersteller nach Belieben und/oder
Notwendigkeit ergänzen -- und wie man diese Unterschiede nutzen kann,
ohne dabei auf Portabilität zu verzichten!


mike

Mit Zitat antworten
 
Antwort


Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen
Es ist dir nicht erlaubt, auf Beiträge zu antworten
Es ist dir nicht erlaubt, Anhänge anzufügen
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten

vB Code ist An
Smileys sind An
[IMG] Code ist An
HTML-Code ist Aus


Alle Zeitangaben in WEZ. Es ist jetzt 06:52 PM Uhr.



Powered by: vBulletin Version 3.6.7 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Forum SEO by Zoints