Tại sao chúng ta không thể vượt qua một giá trị char
như một cuộc tranh cãi với bất kỳ phương pháp mà chấp nhận một tham số short
, trong khi chúng ta có thể vượt qua một giá trị char
phương pháp khác có tham số là của int
loại? Tại sao quá trình truyền kiểu không diễn ra từ char
đến short
, với kích thước bằng nhau? Tôi hy vọng ngắn cũng có thể lưu trữ càng nhiều giá trị như short
có thể.Loại đúc trong Java từ char để ngắn
Trả lời
Tại sao chúng ta không thể vượt qua một giá trị
char
như một đối số cho phương thức bất kỳ mà chấp nhận một tham sốshort
Bởi vì không có chuyển đổi ngầm từ char
để short
trong bối cảnh sự thỉnh nguyện.
trong khi chúng tôi có thể chuyển giá trị
char
cho phương pháp khác có tham số là loạiint
?
Đó là bởi vì có là một chuyển đổi ngầm sẵn từ char
để int
trong bối cảnh sự thỉnh nguyện.
Tại sao quá trình tạo kiểu không diễn ra từ
char
đếnshort
, với kích thước bằng nhau? Tôi hy vọng ngắn cũng có thể lưu trữ càng nhiều giá trị nhưshort
có thể.
Mặc dù char
và short
đều giống nhau kích thước, char
là unsigned trong khi short
được ký kết. Đó là lý do tại sao không có chuyển đổi tiềm ẩn từ char
đến short
.
Việc quy đổi từ char
để int
là một mở rộng chuyển đổi nguyên thủy (JLS 5.1.2) trong khi việc chuyển đổi từ char
để short
là một thu hẹp chuyển đổi nguyên thủy (JLS 5.1.3). Đặc biệt (tôi nhấn mạnh):
Chuyển đổi hẹp của một char đến một loại tách rời T tương tự như vậy chỉ đơn giản là loại bỏ tất cả ngoại trừ các bit thứ tự n thấp nhất, trong đó n là số bit được sử dụng để đại diện cho loại T. trong Ngoài khả năng mất thông tin về độ lớn của giá trị số, điều này có thể làm cho giá trị kết quả là số âm, mặc dù ký tự đại diện cho giá trị số nguyên không dấu 16 bit.
đặc điểm kỹ thuật Java nói:
Bên cạnh đó, nếu biểu thức là một biểu thức hằng số (§15.28) kiểu byte, ngắn, char, int hay:
Một thu hẹp nguyên thủy chuyển đổi có thể được sử dụng nếu loại biến là byte, ngắn hoặc char và giá trị của biểu thức hằng số là biểu thị trong loại biến.
Char có giá trị nhỏ nhất là 0 và giá trị tối đa là 65.535.
Ngắn có giá trị tối thiểu là -32,768 và giá trị tối đa là 32,767.
Số nguyên có giá trị tối thiểu là -2,147,483,648 và giá trị tối đa là 2.147.483.647.
Vì vậy, char có thể phù hợp với số nguyên nhưng không thành ngắn, đó là lý do tại sao bạn nên đảm bảo với java mà bạn muốn thực hiện ở đây.
ngắn cũng như số nguyên cả hai có thể giữ các dấu hiệu và giá trị unsigned nhưng loại đúc đang diễn ra trong trường hợp số nguyên nhưng không phải trong ngắn –
Có. Char có giá trị nhỏ nhất là 0 và giá trị tối đa là 65.535. Ngắn có giá trị tối thiểu là -32,768 và giá trị tối đa là 32,767. Số nguyên có giá trị tối thiểu là -2,147,483,648 và giá trị tối đa là 2.147.483.647. Vì vậy, char có thể phù hợp với số nguyên nhưng không thành ngắn. – Max
vâng ... tôi hiểu rồi. Rất nhiều –
- 1. Java char để bytes đúc
- 2. Tại sao char để int đúc công trình và không char để Integer trong Java
- 3. SQL: ALTER COLUMN để ngắn hơn CHAR (n) loại
- 4. printf quá thông minh đúc từ char để int?
- 5. đúc int để char sử dụng C++ phong cách đúc
- 6. Scala ngắn và loại nhà điều hành an toàn đúc
- 7. Làm thế nào để đúc Int Char trong Kotlin
- 8. đúc một NSString để char vấn đề
- 9. Java: Đúc đối tượng vào loại mảng
- 10. Loại phương pháp chung Java đúc
- 11. Chi phí cho đúc loại nguyên thủy trong Java
- 12. "Dynamic" Đúc trong Java
- 13. Đúc c_str() chỉ hoạt động đối với các chuỗi ngắn
- 14. vấn đề với các thông số đúc và ngắn trong Java
- 15. Char thành byte? (Java)
- 16. AS3 Đúc một loại khác
- 17. Làm thế nào để ngăn chặn constructor từ các loại đối số đúc trong c + +?
- 18. Loại đúc với numpy.take
- 19. 2 byte để ngắn java
- 20. Java: Năng động, loại đúc sử dụng enums
- 21. Làm thế nào để đúc các loại danh sách chung trong java?
- 22. Java RandomAccessFile cắt ngắn từ đầu
- 23. đúc với cùng loại
- 24. Loại đối tượng đúc trong C#
- 25. String để char mảng Java
- 26. Loại bỏ char trong chuỗi từ chỉ số cụ thể
- 27. Mảng/vectơ đúc/đúc trong Rust
- 28. PostgreSQL đúc ghi vào hỗn loại
- 29. Lấy VK int từ một char tùy ý trong java
- 30. Đúc loại C++ dài thành JNI jlong
Tôi đã cố định hầu hết câu hỏi để đọc tốt hơn bằng tiếng Anh, nhưng tôi không hiểu câu cuối cùng: "Tôi hy vọng ngắn cũng có thể lưu trữ đủ giá trị càng nhiều càng tốt", vì vậy tôi đã để lại nó là ... –