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

Đề tài: phân biệt % d và % 2d , %3d ....

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    54

    Post phân biệt % d và % 2d , %3d ....

    cho em hỏi %d là mã định dạng của kiểu int là 2 byte và có giá trị – 32,768 đến 32,767 (làm sao lại tính ra được giá trị này ) còn %2d , %7d .....
    thì nó cũng có kích thước là 2 byte và có giá trị như trên à .
    Thanks

  2. #2
    Ngày gia nhập
    09 2006
    Bài viết
    7

    Bạn nên đọc thêm về cách biểu diễn số trong máy tính để hiểu phạm vi giá trị của một kiểu dữ liệu .
    Chạy đoạn code sau đây rút ra kết luận nha !
    Code:
    #include <conio.h>
    #include <stdio.h>
    void main()
    {
    	clrscr();
    	int a=1000;
    	printf("a = %d\n",a);
    	printf("a = %1d\n",a);
    	printf("a = %2d\n",a);
    	printf("a = %3d\n",a);
    	printf("a = %4d\n",a);
    	printf("a = %5d\n",a);
    	printf("a = %6d\n",a);
    	printf("a = %7d\n",a);
    	printf("a = %8d\n",a);
    	getch();
    }

  3. #3
    Ngày gia nhập
    10 2007
    Nơi ở
    TP. HCM
    Bài viết
    52

    Trích dẫn Nguyên bản được gửi bởi thangit Xem bài viết
    cho em hỏi %d là mã định dạng của kiểu int là 2 byte và có giá trị – 32,768 đến 32,767 (làm sao lại tính ra được giá trị này ) còn %2d , %7d .....
    thì nó cũng có kích thước là 2 byte và có giá trị như trên à .
    Thanks
    Kiểu int chỉ giới hạn các số nguyên hệ 10 từ -32768 đến 32767 là do nó chỉ có 2 byte nghĩa là 16 bit. Với 16 chữ số nhị phân thì chỉ biểu diễn được vùng giá trị như trên, còn đổi thế nào thì tui quên rồi. Bạn có thể tìm hiểu thêm về cách biểu diễn số nhị phân, biểu diễn số âm hệ 10 sang nhị phân, phương pháp bú 1, bù 2. (cái này google đi bạn)

    Các mã định dạng %2d, %7d chỉ dùng để in một biến kiểu int ra màn hình thôi, còn vùng nhớ chứa biến kiểu int này tất nhiên vẫn là 2 byte. Ý nghĩa của việc này là dành cho một số khoảng trống tối thiểu để in con số này ra màn hình. Tối thiểu ở đây nghĩa là lúc nào cũng có sẵn bấy nhiêu khoảng trống đó để dành cho con số mà ta in ra, trường hợp nếu số chữ số lớn hơn số chổ trống thì con số vẫn được in ra đầy đủ.

    Tất nhiên để in các số khác ta có thể dùng nhiều kiểu khác như %5f, %5.2f, %+4d, %-4d, %+7.2f... Xét 1 ví dụ đầy đủ nhất như %+7.2f. Ở đây + là để canh lề phải (- canh lề trái), 7 là chừa ra 7 chổ trống tối thiểu tính luôn dấu (.) để in con số thực này, 2 là số số lẻ sau dấu (.).
    /* The thing that I think is the thing that I do. */

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