01/10/2018, 12:20
Giải thích kết quả khi in ra màn hình các số trong hệ nhị phân
Chào dạy nhau học
Mình đang không hiểu vì sao lại in ra được những con số như thế này khi đầu vào là những số nằm trong hệ nhị phân (binary) trong bảng mã ASCII. Bạn nào có thể giải thích giúp mình với, mình cảm ơn.
Mình thử in ra những số trong hệ binary - và đây là kết quả.
Bài liên quan
Hi Chẵn.
Bạn cho mình hỏi vì sao lại là 0,1,8,9…512,513, mình test trên c++ và java đều như thế?
Còn nữa, mình thử in mảng này với c# thì kết quả lại như này
Hi Chẵn.
Mình vẫn chưa hiểu cho làm.
Bạn làm ơn giải thích kỹ hơn được không?
Vì sao khi in.
00000010 = 8
00000011 = 9
00001000 = 512
00001001 = 513
01111110 = 299592
01111111 = 299593
Cơ chế in những con số trong hệ nhị phân này ra là như thế nào vậy?
Hi Chẵn.
01 -> 1(8) = 1
011 -> 11(8) = 8^1 + 1 = 9
00001000 -> 1000(8) = 8 ^ 3 = 512
Cho mình hỏi thêm là khi minh thực hiện in các số:
011 = 9
012 = 10
013 = 11
014 = 12
Vì sao vậy?
Bạn có tài liệu hay bài viết nào liên quan để đọc hiểu hơn về vấn đề này, làm ơn recommend cho mình được không nhỉ?
Hi Chẵn.
www.vietjack.com
Có thể do bạn không để ý thôi.
Hằng số trong C
Hằng số trong C - Học C cơ bản và nâng cao theo các bước đơn giản và ví dụ dễ hiểu bắt đầu từ cơ bản về C, literals, kiểu dữ liệu, hàm, vòng lặp, mảng, con trỏ, cấu trúc, input và output, quản lý bộ nhớ, bộ tiền xử lý, điều khiển luồng etc.
Prefixes: TIền tố.
GeeksforGeeks – 19 Jun 17
Suffixes: Hậu tố.
Integer literal in C/C++ (Prefixes and Suffixes) - GeeksforGeeks
Integer literal is a type of literal for an integer whose value is directly represented in source code. For example, in the assignment statement x… Read More »
Mịnh đang làm vài bài test về java có 1 câu là in 1 số nguyên > int a = 012; thì ra bao nhiêu mình làm thì ra 10 và tự dưng k hiểu vì sao lại in ra đươc như thế? và thế là tra đầu đuôi 1 lúc thì nó ra cái bảng mã ascii và mình lại in thử và số trong các cột của bảng mã này thì nó ra những con số rất khác nên mới tò mò tìm hiều mà vẫn chưa ra nên mới đăng bài hỏi.
anh có biết tại sao nó lại quy ước là cơ số 8 mà không phải 2, 10 hay 16 không ? ths
0x… là hệ 16
0… là hệ 8
0b… là hệ 2 (C/C++ ko có)
viết số bình thường là hệ 10
do mấy con số kia bạn để số 0 ở đầu nên nó tự hiểu là số hệ 8 chứ ko phải hệ 2. Muốn viết số hệ 2 trong C/C++ thì phải viết thông qua hệ 16, vd 0b10011011 thì phải viết thành hệ 16 là 0x9b.
chắc mấy ông lập trình viên thấy viết 0o… xấu quá nên viết 0… được rồi
cái thứ 3 test ko được ?
đã bảo là ko có rồi ~.~
chỉ bảo C/C++ ko có, test java mà
Java mình ít xài nên ko biết, thử ko có thì nó cũng ko có.