30/09/2018, 18:54

Thắc mắc Code C

Mọi người giải thích giúp e
int i=065,j=65;
printf("%d%d",i,j);

kết quả ;5365 ai giải thích vì sao ra kết quả này cái ạ!
tks !

Huy viết 21:10 ngày 30/09/2018

Bát phân 65 chuyển qua thập phân = 6x8^1 + 5x8^0

Mạc Anh Hiếu viết 21:03 ngày 30/09/2018

seo lại biết đó là bat phân vậy a

Huy viết 20:58 ngày 30/09/2018
#include <stdio.h>
int main(){
int i=065,j=65;

printf("%o %d",i,j);
}

Mình thử chuyển kiểu dữ liệu
065 ~ octal 65

Mạc Anh Hiếu viết 20:57 ngày 30/09/2018

haiz! hok hiểu bản chất cho lém

Huy viết 21:01 ngày 30/09/2018

http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/BitOp/hexoctal.html

Bạn thử đọc cái này xem

Interns viết 21:07 ngày 30/09/2018
Theo mình nghĩ trong ngôn ngữ C/C++
int i = 65;      // giá trị i thuộc hệ cơ số  10
// int i = 065;     giá trị i thuộc hệ cơ số 8
// int i = 0x65;    giá trị i thuộc hệ cơ số 16

printf("%d\n",i); //%d là định dạng kiểu thập phân nên in ra là 65 
printf("%o\n",i); //%o là định dạng kiểu bát phân nên in ra là 101
printf("%x\n",i); //%x là định dạng kiểu thập lục phân nên in ra là 41

//Bạn có thể thử các trường hợp khác với int i = 065; và int i = 0x65;

Đây là cách nghĩ của mình không theo sách vở

Bài liên quan
0