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

Đề tài: Thắc mắc lỗi kiểu biến!

  1. #1
    Ngày gia nhập
    02 2009
    Bài viết
    2

    Mặc định Thắc mắc lỗi kiểu biến!

    Tớ mới học C++ nên muốn hỏi các pro 1 chút
    Kiểu int 2byte=16 bít, nên có thể chứa được giá trị từ -32768>>32767 .
    Nhưng khi mình khai báo int i=32768, rồi in ra màn hình, thấy chẳng có lỗi gì . Thậm chí cho i=100 000 nó vẫn in ra mà k báo lỗi. Mình nghĩ nó phải báo vượt quá giới hạn cho phép, hoặc ít ra thì cũng trả về giá trị -32768 chứ ?
    Nhân tiên mình muốn hỏi thêm : có hàm nào để kiểm tra giới hạn của 1 kiểu biến k à
    mong được các pro giúp đỡ sớm !

  2. #2
    Ngày gia nhập
    02 2009
    Bài viết
    9

    Trích dẫn Nguyên bản được gửi bởi leanh215 Xem bài viết
    Tớ mới học C++ nên muốn hỏi các pro 1 chút
    Kiểu int 2byte=16 bít, nên có thể chứa được giá trị từ -32768>>32767 .
    Nhưng khi mình khai báo int i=32768, rồi in ra màn hình, thấy chẳng có lỗi gì . Thậm chí cho i=100 000 nó vẫn in ra mà k báo lỗi. Mình nghĩ nó phải báo vượt quá giới hạn cho phép, hoặc ít ra thì cũng trả về giá trị -32768 chứ ?
    Nhân tiên mình muốn hỏi thêm : có hàm nào để kiểm tra giới hạn của 1 kiểu biến k à
    mong được các pro giúp đỡ sớm !
    int có giá trị 2 hay 4 byte còn phụ thuộc vào nhiều yếu tố. Một byte bằng 8 bít, thế thì 2 byte sẽ là 16 bít, từ đó cậu có thể tính được giá trị của kiểu int dựa vào số byte rồi đấy

  3. #3
    Ngày gia nhập
    01 2009
    Bài viết
    89

    Trích dẫn Nguyên bản được gửi bởi leanh215 Xem bài viết
    Tớ mới học C++ nên muốn hỏi các pro 1 chút
    Kiểu int 2byte=16 bít, nên có thể chứa được giá trị từ -32768>>32767 .
    Nhưng khi mình khai báo int i=32768, rồi in ra màn hình, thấy chẳng có lỗi gì . Thậm chí cho i=100 000 nó vẫn in ra mà k báo lỗi. Mình nghĩ nó phải báo vượt quá giới hạn cho phép, hoặc ít ra thì cũng trả về giá trị -32768 chứ ?
    Nhân tiên mình muốn hỏi thêm : có hàm nào để kiểm tra giới hạn của 1 kiểu biến k à
    mong được các pro giúp đỡ sớm !
    Bạn có chắc là compiler của bạn coi int là 2 byte không? bạn thử xem lại đi (VD như in ra size của int bằng printf("%d",sizeof(int)) xem).

  4. #4
    Ngày gia nhập
    02 2009
    Bài viết
    2

    Mình có thắc mắc này ,nhờ pro giải thích
    Mình muốn dùng hàm itoa, đổi 1 kí tự thành số, sau đó in ra màn hình
    Đây là code:
    Code:
    #include <iostream.h>
    #include <conio.h>
    
    main()
    {
        char s;
        cout<<"Nhap s:";cin.get(s);cin.ignore(1);
        char t[1];
        t[0]=s;
        int i=atoi(t);
        i=i+1;
        cout<<i;
    }
    khi in ra màn hình , đáng nhẽ nó chỉ ghi ra i (ở đây=2) thôi, nhưng bao giờ tớ cũng thấy nó in ra cả số "s" đằng trước
    ví dụ mình nhập s=2 >>>> 23
    heo mi :-??

  5. #5
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    @leanh215 :
    - trong win kiểu int là 4 byte, kiểu short là byte.
    - cái code bạn hỏi thêm dòng t[1] = 0; ngay sau t[0] = s; là sẽ hết lỗi.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

  1. Biết nhiều ngôn ngữ lập trình nhưng biết không sâu ! phải làm thế nào ?
    Gửi bởi oxfordthuongyeu trong diễn đàn Kinh nghiệm CNTT
    Trả lời: 30
    Bài viết cuối: 06-03-2013, 03:48 PM

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