Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: miền biểu diễn của int và long int trong C?

  1. #1
    Ngày gia nhập
    10 2010
    Bài viết
    11

    Unhappy miền biểu diễn của int và long int trong C?

    Mình có 1 cái thắc mắc về miền biểu diễn của int và long int
    Theo như mình học trước thì: int là số nguyên có dấu, 2 bytes, miền biểu diễn từ -32,768 đến 32,767. Còn long int hay long (trong C như nhau) cũng là kiểu số nguyên có dấu, 4 bytes, miền biều diễn từ -2,147,483,868 đến 2,147,483,647.
    Nhưng mình tra trong msdn thì: int và long int đều là 4 bytes, miền biểu diễn là bằng nhau. Bạn nào có thể cho mình 1 câu trả lời thoả đáng không?

  2. #2
    Ngày gia nhập
    07 2009
    Nơi ở
    Thị trấn Lâm Thao - Phú Thọ
    Bài viết
    86

    trong windows thì như nhau đều là 4 byte
    muốn dùng 2 byte thì dùng short
    Ngô Hùng Cường
    Birthday: 14/4/1986 - Cư ngụ: Thị trấn Lâm Thao - Phú Thọ
    kidteam@gmail.com
    Yahoo ID: cuong_dhbk2004
    0989696971
    0915696971

  3. #3
    Ngày gia nhập
    10 2010
    Bài viết
    11

    Trích dẫn Nguyên bản được gửi bởi kidteam Xem bài viết
    trong windows thì như nhau đều là 4 byte
    muốn dùng 2 byte thì dùng short
    Vừa h hỏi bạn thì nó bảo:
    Trong VC++ thì int và INT, long và LONG được định nghĩa khác nhau
    int là 2 bytes, long là 4 bytes
    INT và LONG đều 4 bytes
    điều này có phải không vậy?
    Đã được chỉnh sửa lần cuối bởi Shanks : 31-08-2011 lúc 10:14 PM.

  4. #4
    Ngày gia nhập
    01 2010
    Nơi ở
    Hà Nội
    Bài viết
    128

    Hải ơi ? LONG # long sao ? cả INT và int nữa
    Cái này thì tùy trình biên dịch và HDH nữa nên theo VS2010 thì nó là như vậy thôi mà
    Cái link của MSDN là cậu tra cho int trong VS2010

  5. #5
    Ngày gia nhập
    10 2010
    Bài viết
    11

    Trích dẫn Nguyên bản được gửi bởi kids301090 Xem bài viết
    Hải ơi ? LONG # long sao ? cả INT và int nữa
    Cái này thì tùy trình biên dịch và HDH nữa nên theo VS2010 thì nó là như vậy thôi mà
    Cái link của MSDN là cậu tra cho int trong VS2010
    Hì, thanks cậu! Tự nhiên có đứa hỏi nên mới chú ý đến vấn đề đó...tớ dùng turbo C nên int là 2 bytes, long là 4 bytes. Chạy bằng thằng devc thì int và long đều là 4 bytes...hic, đọc ở mỗi nơi không giải thích cái này loạn hết cả nên @@

  6. #6
    Ngày gia nhập
    07 2010
    Nơi ở
    chỗ kín
    Bài viết
    446

    Mặc định miền biểu diễn của int và long int trong C?

    hàng của microsoft thì đời nào cũng vậy từ bản v6->2010 int là 32 bit.
    em vừa check lại thông tin, microsoft không hỗ trợ C99, cho nên không thể lấy microsoft ra làm mẫu dc.

    ở ANSI C thì int là 16 bit, không liên quan đến CPU.
    ở C99 (ISO) thì miền giá trị dc định nghĩa trong inttypes.h
    http://en.wikipedia.org/wiki/Inttypes.h

    trích lại một câu quan trọng:
    "For 16-bit systems, most implementations assigned 8, 16, 16, and 32 bits to char, short, int, and long, respectively. For 32-bit systems, the common practice has been to assign 8, 16, 32, and 32 bits to these types.

    This difference in int size can create some problems for users who migrate from one system to another which assigns different sizes to integer types, because the ISO C standard integer promotion rule can produce silent changes unexpectedl"

    bây giờ theo chuẩn C99, chạy cpu 32bit thì |int| = |long int| = 4 byte.

    p/s:
    thì ra shanks là anh shinichi bên bka.vn
    chị kids301090 chắc cũng học bk luôn nhỉ ?

  7. #7
    Ngày gia nhập
    04 2010
    Nơi ở
    Recycle Bin
    Bài viết
    358

    C Code:
    1. printf("%d byte",sizeof(int));
    2.  
    3. printf("%d byte",sizeof(long));
    4.  
    5. printf("%d byte",sizeof(Kieu_du_lieu));

    Như thế này cho nhanh nhé!
    Mỗi trình biên dịch, và hdh khác nhau thì cho KQ cũng khác nhau đôi chút. Nên bạn cứ kiểm tra như trên cho chắc.

    Miền giá trị bạn có thể dựa vào sizeof để suy ra
    YH : lobuocphuudu_218
    Phone : 0126 463 5095

    http://forums.congdongcviet.com/signaturepics/sigpic55872_2.gif

Các đề tài tương tự

  1. chung cư làng quốc tế thăng long, cc làng quốc tế thăng long, lang quoc te thang long
    Gửi bởi hanhnc123 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 20-10-2011, 09:40 AM
  2. can ho viet hung long bien, căn hộ Việt Hưng Long Biên cb S=84-135m2
    Gửi bởi daiphat88 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 18-08-2011, 10:36 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn