คำถามติดแท็ก long-integer

จำนวนเต็มแบบยาวคือจำนวนเต็มโดยทั่วไปมีขนาดเป็นสองเท่าของจำนวนเต็มมาตรฐาน มันแสดงด้วยคำหลัก 'ยาว' ในภาษาโปรแกรมต่างๆ

6
ข้อมูลจำเพาะหมายเลข L (ยาว) ของ Java
ดูเหมือนว่าเมื่อคุณพิมพ์ตัวเลขใน Java คอมไพลเลอร์จะอ่านเป็นจำนวนเต็มโดยอัตโนมัติซึ่งเป็นเหตุผลว่าทำไมเมื่อคุณพิมพ์ (long) 6000000000(ไม่อยู่ในช่วงของจำนวนเต็ม) มันจะบ่นว่า6000000000ไม่ใช่จำนวนเต็ม 6000000000Lการแก้ไขปัญหานี้ผมต้องระบุ ฉันเพิ่งเรียนรู้เกี่ยวกับสเปคนี้ มีข้อกำหนดตัวเลขอื่น ๆ เช่นสั้นไบต์ลอยคู่หรือไม่? ดูเหมือนว่าสิ่งเหล่านี้จะดีที่จะมีเพราะ (ฉันถือว่า) ถ้าคุณสามารถระบุหมายเลขที่คุณกำลังพิมพ์เป็นตัวย่อ java ก็ไม่ต้องแคสต์ - นั่นเป็นข้อสันนิษฐานโปรดแก้ไขฉันถ้าฉันผิด . ปกติฉันจะค้นหาคำถามนี้ด้วยตัวเอง แต่ฉันไม่รู้ว่าข้อกำหนดตัวเลขประเภทนี้เรียกว่าอะไร

5
xyz ตัวอักษรของประเภท int อยู่นอกช่วง
ฉันกำลังทำงานกับชนิดข้อมูลใน Java ในขณะนี้และถ้าฉันเข้าใจถูกต้องประเภทlongจะยอมรับค่าระหว่างช่วง -9,223,372,036,854,775,808 ถึง +9,223,372,036,854,775,807 ตอนนี้อย่างที่คุณเห็นด้านล่างฉันได้สร้างlongตัวแปรที่เรียกว่าtestLongแม้ว่าเมื่อฉันใส่ 9223372036854775807 เป็นค่าฉันได้รับข้อผิดพลาดที่ระบุว่า: 9223372036854775807 ตัวอักษรของประเภท int อยู่นอกช่วง ฉันไม่รู้ว่าทำไมมันถึงอ้างถึงlongประเภทข้อมูลเป็นintไฟล์. ใครมีไอเดียบ้าง รหัส: char testChar = 01; byte testByte = -128; int testInt = -2147483648; short testShort = -32768; long testLong = 9223372036854775807; float testFoat; double testDouble = 4.940656458412; boolean testBool = true;
93 java  int  long-integer 

8
เหตุใดจึงช้ากว่า int ใน x64 Java นาน
ฉันใช้ Windows 8.1 x64 พร้อมอัปเดต Java 7 45 x64 (ไม่ได้ติดตั้ง Java 32 บิต) บนแท็บเล็ต Surface Pro 2 โค้ดด้านล่างใช้เวลา 1688ms เมื่อประเภทของ i ยาวและ 109ms เมื่อฉันเป็น int เหตุใดลำดับความยาว (ประเภท 64 บิต) จึงช้ากว่า int บนแพลตฟอร์ม 64 บิตที่มี JVM 64 บิต การคาดเดาเพียงอย่างเดียวของฉันคือ CPU ใช้เวลาในการเพิ่มจำนวนเต็ม 64 บิตนานกว่า 32 บิตหนึ่ง แต่ดูเหมือนจะไม่น่าเป็นไปได้ ฉันสงสัยว่า Haswell ไม่ได้ใช้ตัวเติมแบบกระเพื่อม ฉันกำลังเรียกใช้สิ่งนี้ใน Eclipse …

4
long long ใน C / C ++
ฉันกำลังลองใช้รหัสนี้ในคอมไพเลอร์ C ++ ของ GNU และไม่เข้าใจพฤติกรรมของมัน: #include <stdio.h>; int main() { int num1 = 1000000000; long num2 = 1000000000; long long num3; //num3 = 100000000000; long long num4 = ~0; printf("%u %u %u", sizeof(num1), sizeof(num2), sizeof(num3)); printf("%d %ld %lld %llu", num1, num2, num3, num4); return 0; } เมื่อฉันยกเลิกการแสดงความคิดเห็นในบรรทัดที่แสดงความคิดเห็นรหัสจะไม่รวบรวมและให้ข้อผิดพลาด: ข้อผิดพลาด: ค่าคงที่จำนวนเต็มใหญ่เกินไปสำหรับประเภทยาว …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.