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

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

8
แคสต์ที่ไม่ได้ลงชื่อเพื่อลงนามที่มีประสิทธิภาพหลีกเลี่ยงพฤติกรรมที่กำหนดการนำไปใช้งาน
ฉันต้องการกำหนดฟังก์ชันที่รับunsigned intอาร์กิวเมนต์เป็นและส่งคืนintโมดูโลที่สอดคล้องกัน UINT_MAX + 1 ให้กับอาร์กิวเมนต์ ความพยายามครั้งแรกอาจมีลักษณะดังนี้: int unsigned_to_signed(unsigned n) { return static_cast<int>(n); } แต่อย่างที่นักกฎหมายภาษาใด ๆ ทราบการคัดเลือกจากไม่ได้ลงนามเป็นเซ็นชื่อสำหรับค่าที่มีขนาดใหญ่กว่า INT_MAX นั้นถูกกำหนดให้ใช้งานได้ ฉันต้องการใช้สิ่งนี้ซึ่ง (ก) อาศัยเฉพาะพฤติกรรมที่กำหนดโดยข้อมูลจำเพาะเท่านั้น และ (b) รวบรวมเป็น no-op บนเครื่องที่ทันสมัยและปรับแต่งคอมไพเลอร์ สำหรับเครื่องจักรที่แปลกประหลาด ... หากไม่มีโมดูโลคอนดักเตอร์ int ที่ลงนาม UINT_MAX + 1 ไปยัง int ที่ไม่ได้ลงนามสมมติว่าฉันต้องการยกเว้น ถ้ามีมากกว่าหนึ่ง (ฉันไม่แน่ใจว่าเป็นไปได้) สมมติว่าฉันต้องการอันที่ใหญ่ที่สุด ตกลงครั้งที่สอง: int unsigned_to_signed(unsigned n) { int int_n = static_cast<int>(n); …

13
จะแยกวิเคราะห์ชื่อเดือน (สตริง) เป็นจำนวนเต็มเพื่อเปรียบเทียบใน C # ได้อย่างไร?
ฉันต้องสามารถเปรียบเทียบชื่อเดือนที่ฉันมีในอาร์เรย์ได้ คงจะดีไม่น้อยหากมีทางตรงเช่น: Month.toInt("January") > Month.toInt("May") การค้นหา Google ของฉันดูเหมือนจะแนะนำวิธีเดียวคือการเขียนวิธีการของคุณเอง แต่ดูเหมือนว่าจะเป็นปัญหาทั่วไปที่ฉันคิดว่ามันจะถูกนำไปใช้แล้วใน. Net มีใครเคยทำมาก่อน
94 c#  parsing  integer  compare 

3
เหตุใดค่า int ที่เป็นลบมากที่สุดจึงทำให้เกิดข้อผิดพลาดเกี่ยวกับการโอเวอร์โหลดของฟังก์ชันที่ไม่ชัดเจน
ฉันกำลังเรียนรู้เกี่ยวกับการทำงานมากเกินไปใน C ++ และเจอสิ่งนี้: void display(int a) { cout << "int" << endl; } void display(unsigned a) { cout << "unsigned" << endl; } int main() { int i = -2147483648; cout << i << endl; //will display -2147483648 display(-2147483648); } จากสิ่งที่ฉันเข้าใจค่าใด ๆ ที่กำหนดในintช่วง (ในกรณีของฉันintคือ 4 ไบต์) จะเรียกdisplay(int)และค่าใด ๆ ที่อยู่นอกช่วงนี้จะไม่ชัดเจน …

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