Tôi đang học về các ngôn ngữ lập trình ngay bây giờ (BNFs, máy quét, v.v ...) và có vẻ lạ rằng hằng số dấu phẩy động thập lục phân trong C yêu cầu số mũ.Tại sao dấu phẩy thập lục phân cần phải có số mũ được chỉ định?
Từ tiêu chuẩn C99,
§6.4.4.2 hằng Floating
hexadecimal-floating-constant:
hexadecimal-prefix hexadecimal-fractional-constant
binary-exponent-part floating-suffix[opt]
hexadecimal-prefix hexadecimal-digit-sequence
binary-exponent-part floating-suffix[opt]
Có vẻ như dễ dàng để viết một máy quét mà sẽ phân tích hằng điểm hexadecimal nổi với một số mũ không bắt buộc. Tại sao tiêu chuẩn C làm cho số mũ tùy chọn cho các dấu phảy động thập phân và được yêu cầu cho các dấu phảy động hex?