คำถามติดแท็ก int

ชนิดข้อมูลที่แสดงถึงจำนวนเต็ม จำนวนเต็มเป็นจำนวนเต็มที่สามารถเป็นลบบวกหรือศูนย์ (เช่น ...- 2, -1, 0, 1, 2 ... ) ใช้แท็กนี้สำหรับคำถามเกี่ยวกับการใช้จัดเก็บหรือจัดการจำนวนเต็ม

3
ทำไมประเภทจำนวนเต็มแบบเร็วจึงเร็วกว่าประเภทจำนวนเต็มอื่น ๆ
ใน ISO / IEC 9899: 2018 (C18) แสดงไว้ภายใต้ 7.20.1.3: 7.20.1.3 ประเภทจำนวนเต็มความกว้างต่ำสุดที่เร็วที่สุด 1 แต่ละประเภทต่อไปนี้กำหนดประเภทจำนวนเต็มที่มักจะเร็วที่สุด268)เพื่อใช้งานกับประเภทจำนวนเต็มทั้งหมดที่มีความกว้างอย่างน้อยที่ระบุ 2 ชื่อ typedef int_fastN_tกำหนดประเภทจำนวนเต็มที่เร็วที่สุดที่ลงนามด้วยความกว้างอย่างน้อย N ชื่อ typedef uint_fastN_tกำหนดประเภทจำนวนเต็มที่ไม่ได้ลงชื่อที่เร็วที่สุดที่มีความกว้างอย่างน้อย N 3 ประเภทต่อไปนี้จำเป็นต้องใช้: int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t, uint_fast8_t, uint_fast16_t, uint_fast32_t,uint_fast64_t ประเภทอื่น ๆ ทั้งหมดของแบบฟอร์มนี้เป็นตัวเลือก 268)ประเภทที่กำหนดไม่รับประกันว่าจะเร็วที่สุดสำหรับทุกวัตถุประสงค์ หากการนำไปใช้ไม่มีเหตุผลที่ชัดเจนสำหรับการเลือกประเภทหนึ่งมากกว่าประเภทอื่นก็จะเลือกประเภทจำนวนเต็มบางอย่างที่ตอบสนองความต้องการของการลงนามและความกว้าง แต่ไม่ได้ระบุว่าทำไมประเภทจำนวนเต็ม "เร็ว" เหล่านี้จึงเร็วกว่า ทำไมจำนวนเต็มแบบเร็วเหล่านี้จึงเร็วกว่าประเภทจำนวนเต็มอื่น ๆ ผมติดแท็กคำถามกับ C ++ เพราะประเภทจำนวนเต็มอย่างรวดเร็วนอกจากนี้ยังมีใน C ++ 17 cstdintในไฟล์ส่วนหัวของ น่าเสียดายที่ใน …
107 c++  c  performance  types  int 

8
เหตุใด Decimal.Divide (int, int) จึงทำงาน แต่ไม่ทำงาน (int / int)
ทำไมการหารตัวเลข int 32 บิตสองตัวเป็น (int / int) จะส่งกลับมาให้ฉัน0แต่ถ้าฉันใช้Decimal.Divide()ฉันจะได้คำตอบที่ถูกต้อง ฉันไม่ได้หมายความว่าผู้ชาย #
107 c#  math  int  divide 

3
ความแตกต่างระหว่าง int32, int, int32_t, int8 และ int8_t
ฉันเจอประเภทข้อมูลint32_tในโปรแกรม C เมื่อเร็ว ๆ นี้ ฉันรู้ว่าจะเก็บ 32 บิต แต่ทำไม่ได้intและint32ทำเช่นเดียวกันหรือไม่ นอกจากนี้ฉันต้องการใช้charในโปรแกรม ใช้int8_tแทนได้ไหม? อะไรคือความแตกต่าง? สรุป: int32, int, int32_t, int8 และ int8_t ใน C ต่างกันอย่างไร
107 c  int  declaration 


14
Java ตรวจสอบแบบง่ายว่า int array มี int หรือไม่
โดยทั่วไปเพื่อนของฉันบอกว่าฉันสามารถทำให้โค้ดสั้นลงได้โดยใช้วิธีอื่นในการตรวจสอบว่าอาร์เรย์ int มี int หรือไม่แม้ว่าเขาจะไม่บอกฉันว่ามันคืออะไร: P ปัจจุบัน: public boolean contains(final int[] array, final int key) { for (final int i : array) { if (i == key) { return true; } } return false; } ลองใช้สิ่งนี้ด้วยแม้ว่ามันจะส่งคืนเท็จเสมอด้วยเหตุผลบางประการ public boolean contains(final int[] array, final int key) { return Arrays.asList(array).contains(key); } มีใครช่วยฉันได้ไหม ขอขอบคุณ.
98 java  arrays  int  contains 

3
วิธีการแปลง int เป็น Enum ใน python?
ใช้คุณลักษณะ Enum ใหม่ (ผ่านbackport enum34 ) กับ python 2.7.6 ด้วยคำจำกัดความต่อไปนี้ฉันจะแปลง int เป็นค่า Enum ที่สอดคล้องกันได้อย่างไร from enum import Enum class Fruit(Enum): Apple = 4 Orange = 5 Pear = 6 ฉันรู้ว่าฉันสามารถสร้างชุดคำสั่ง if เพื่อทำการแปลงได้ แต่มีวิธีง่ายๆในการแปลงหรือไม่ โดยทั่วไปฉันต้องการฟังก์ชั่น ConvertIntToFruit (int) ที่ส่งคืนค่า enum กรณีการใช้งานของฉันคือฉันมีไฟล์ csv ของเร็กคอร์ดที่ฉันกำลังอ่านแต่ละเร็กคอร์ดในอ็อบเจ็กต์ หนึ่งในฟิลด์ไฟล์คือฟิลด์จำนวนเต็มที่แสดงถึงการแจงนับ ขณะที่ฉันกำลังเติมวัตถุฉันต้องการแปลงฟิลด์จำนวนเต็มจากไฟล์เป็นค่า Enum ที่สอดคล้องกันในออบเจ็กต์

8
ซึ่งเร็วกว่า: if (bool) หรือ if (int)?
ใช้คุ้มค่าไหนดี? บูลีนจริงหรือจำนวนเต็ม 1? หัวข้อดังกล่าวข้างต้นทำให้ผมทำการทดลองบางคนที่มีboolและintในifสภาพ ดังนั้นฉันจึงเขียนโปรแกรมนี้ด้วยความอยากรู้อยากเห็น: int f(int i) { if ( i ) return 99; //if(int) else return -99; } int g(bool b) { if ( b ) return 99; //if(bool) else return -99; } int main(){} g++ intbool.cpp -S สร้างรหัส asm สำหรับแต่ละฟังก์ชันดังนี้: รหัส asm สำหรับ f(int) __Z1fi: LFB0: pushl …
94 c++  assembly  int  boolean 

7
เป็นไปได้ไหมที่จะแยกความแตกต่างระหว่าง 0 ถึง -0
ฉันรู้ว่าค่าจำนวนเต็ม0และ-0เป็นหลักเหมือนกัน แต่ฉันสงสัยว่าเป็นไปได้ไหมที่จะแยกความแตกต่างระหว่างพวกเขา ตัวอย่างเช่นฉันจะทราบว่าตัวแปรที่ได้รับมอบหมาย-0? bool IsNegative(int num) { // How ? } int num = -0; int additinon = 5; num += (IsNegative(num)) ? -addition : addition; ค่าที่-0บันทึกไว้ในหน่วยความจำเป็นวิธีเดียวกับ0หรือไม่

1
ฉันจะแปลงจากจำนวนเต็มเป็นสตริงได้อย่างไร
ฉันไม่สามารถรวบรวมโค้ดที่แปลงประเภทจากจำนวนเต็มเป็นสตริงได้ ฉันใช้ตัวอย่างจากบทช่วยสอน Rust for Rubyistsซึ่งมีการแปลงประเภทต่างๆเช่น: "Fizz".to_str()และ num.to_str()( numจำนวนเต็มอยู่ที่ไหน) ฉันคิดว่าการto_str()เรียกใช้ฟังก์ชันเหล่านี้ส่วนใหญ่ (ถ้าไม่ใช่ทั้งหมด) ได้เลิกใช้งานแล้ว วิธีปัจจุบันในการแปลงจำนวนเต็มเป็นสตริงคืออะไร? ข้อผิดพลาดที่ฉันได้รับคือ: error: type `&'static str` does not implement any method in scope named `to_str` error: type `int` does not implement any method in scope named `to_str`

10
วิธีการแปลง Int เป็นไบต์ที่ไม่ได้ลงนามและย้อนกลับ
ฉันต้องการแปลงตัวเลขเป็นไบต์ที่ไม่ได้ลงชื่อ จำนวนจะน้อยกว่าหรือเท่ากับ 255 เสมอดังนั้นจึงจะพอดีกับหนึ่งไบต์ ฉันต้องแปลงไบต์นั้นกลับเป็นตัวเลขนั้นด้วย ฉันจะทำสิ่งนั้นใน Java ได้อย่างไร ฉันลองมาหลายวิธีแล้วไม่ได้ผล นี่คือสิ่งที่ฉันพยายามทำตอนนี้: int size = 5; // Convert size int to binary String sizeStr = Integer.toString(size); byte binaryByte = Byte.valueOf(sizeStr); และตอนนี้เพื่อแปลงไบต์นั้นกลับเป็นตัวเลข: Byte test = new Byte(binaryByte); int msgSize = test.intValue(); เห็นได้ชัดว่าสิ่งนี้ไม่ได้ผล 65ด้วยเหตุผลบางอย่างก็มักจะแปลงจำนวนลงไป ข้อเสนอแนะใด ๆ ?
93 java  byte  int 

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 

7
วิธีที่ดีที่สุดในการรับส่วนจำนวนเต็มของจำนวนทศนิยม
วิธีใดเป็นวิธีที่ดีที่สุดในการคืนค่าส่วนจำนวนเต็มของทศนิยม (ใน c #) (ต้องใช้กับตัวเลขที่มีขนาดใหญ่มากซึ่งอาจไม่พอดีกับ int) GetIntPart(343564564.4342) >> 343564564 GetIntPart(-323489.32) >> -323489 GetIntPart(324) >> 324 จุดประสงค์ของสิ่งนี้คือ: ฉันกำลังแทรกลงในฟิลด์ทศนิยม (30,4) ในฐานข้อมูลและต้องการให้แน่ใจว่าฉันไม่ได้พยายามแทรกตัวเลขที่ยาวเกินไปสำหรับฟิลด์ การกำหนดความยาวของส่วนจำนวนเต็มของทศนิยมเป็นส่วนหนึ่งของการดำเนินการนี้
91 c#  .net  decimal  int 

6
ใน java การใช้ byte หรือ short แทน int และ float แทน double มีประสิทธิภาพมากกว่าหรือไม่?
ฉันสังเกตเห็นว่าฉันใช้ int และเพิ่มเป็นสองเท่าไม่ว่าจำนวนจะน้อยหรือมาก ดังนั้นใน java การใช้byteหรือshortแทนที่จะใช้intและfloatแทนที่จะมีประสิทธิภาพมากกว่ากันdouble? สมมติว่าฉันมีโปรแกรมที่มี ints และ doubles มากมาย จะคุ้มไหมที่จะผ่านและเปลี่ยน ints เป็นไบต์หรือกางเกงขาสั้นถ้าฉันรู้ว่าจำนวนนั้นพอดี ฉันรู้ว่า java ไม่มีประเภทที่ไม่ได้ลงชื่อ แต่มีอะไรเพิ่มเติมที่ฉันสามารถทำได้ถ้าฉันรู้ว่าจำนวนจะเป็นบวกเท่านั้น โดยประสิทธิภาพส่วนใหญ่ฉันหมายถึงการประมวลผล ฉันคิดว่าตัวเก็บขยะจะเร็วขึ้นมากถ้าตัวแปรทั้งหมดมีขนาดครึ่งหนึ่งและการคำนวณนั้นก็น่าจะเร็วขึ้นด้วย (ฉันเดาว่าเนื่องจากฉันทำงานกับ Android ฉันก็ต้องกังวลเกี่ยวกับ ram ด้วย) (ฉันจะถือว่าคนเก็บขยะจัดการกับ Objects เท่านั้นไม่ใช่แบบดั้งเดิม แต่ยังคงลบสิ่งดั้งเดิมทั้งหมดในวัตถุที่ถูกทิ้งใช่ไหม) ฉันลองใช้กับแอป Android ขนาดเล็กที่มี แต่ไม่ได้สังเกตเห็นความแตกต่างเลย (แม้ว่าฉันจะไม่ได้วัดอะไร "ทางวิทยาศาสตร์") ฉันคิดผิดหรือเปล่าที่คิดว่าควรเร็วและมีประสิทธิภาพมากกว่านี้ ฉันเกลียดที่จะผ่านและเปลี่ยนแปลงทุกอย่างในโปรแกรมขนาดใหญ่เพื่อพบว่าฉันเสียเวลาไปเปล่า ๆ จะคุ้มไหมที่จะทำตั้งแต่เริ่มต้นโครงการใหม่ (ฉันหมายความว่าฉันคิดว่าทุก ๆ อย่างจะช่วยได้ แต่ถ้าเป็นเช่นนั้นอีกครั้งทำไมดูเหมือนไม่มีใครทำ)

10
ช่วงของค่าชนิดจำนวนเต็มสามารถจัดเก็บใน C ++ ได้
สามารถunsigned long intเก็บตัวเลขหลักสิบ (1,000,000,000 - 9,999,999,999) บนคอมพิวเตอร์ 32 บิตได้หรือไม่? นอกจากนี้สิ่งที่เป็นช่วงของunsigned long int, long int, unsigned int, short int, short unsigned intและint?
86 c++  int 


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.