Thắc mắc Code C

Mọi người giải thích giúp e :smile:
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 !

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

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

#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 :smiley:
065 ~ octal 65

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

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

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

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ở :grinning:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?