Warum int und long Typen sind erstklassig und werden von C # und der Laufzeit favorisiert?

8

Unter Numerische Typen in Kapitel 2 ( C # 5.0 in Kürze ) habe ich diesen Satz gefunden:

Warum int und long sind erstklassige Bürger und werden sowohl von C # als auch von der Laufzeit bevorzugt? und, warum die anderen Typen für die Interoperabilität verwendet werden?

    
InfZero 08.07.2013, 23:18
quelle

2 Antworten

11

Wegen der Art, wie moderne Prozessoren konstruiert werden. 32-Bit- und 64-Bit-Prozessoren sind speziell für die Verarbeitung von 32-Bit- und 64-Bit-Ganzzahlen optimiert. Dies nennt man Wort Größe :

  

Moderne Prozessoren, einschließlich eingebetteter Systeme, haben normalerweise eine Wortgröße von 8, 16, 24, 32 oder 64 Bits, während moderne Universalcomputer normalerweise 32 oder 64 Bits verwenden.

Dies bedeutet, dass ein Prozessor Arithmetik mit diesen Typen einfacher ausführen kann als die anderen Typen. A byte oder short werden, obwohl sie theoretisch weniger Speicher belegen, immer noch in 32-Bit- oder 64-Bit-Registern auf dem Prozessor geladen (abhängig von der Architektur).

    
p.s.w.g 08.07.2013 23:20
quelle
2

Die Präferenz von int und long über uint und ulong ist völlig willkürlich .

Es gibt keinen technischen Grund, warum vorzeichenlose Ganzzahlen schwerer zu unterlegen wären als Ganzzahlen mit Vorzeichen. Wenn überhaupt, wären signierte Ganzzahlen in Hardware schwieriger zu unterstützen.

Darüber hinaus ist "Kompatibilität" nicht einmal ein Grund, denn als .NET entworfen wurde, gab es nichts, um mit kompatibel zu bleiben!

So signierte Typen sind bevorzugt weil sie sich so anfühlen .
Sie hätten das CLS sehr gut so gestalten können, dass es vorzeichenlose Ganzzahlen enthält, und es hätte auch funktioniert.

    
Mehrdad 08.07.2013 23:42
quelle

Tags und Links