Ai rành giúp mình giải thích đoạn nhỏ C++ này với

PhamHongViEHG

Junior
Joined
Jun 15, 2014
Messages
281
Reactions
269
MR
0.028

faluyt

Senior
Verified
Pre-verified
Joined
Sep 15, 2014
Messages
342
Reactions
168
MR
0.580
$500.00
Services
Follow me on Facebook
Ko hiểu chỗ nào?
 
đoạn này ko hỉu
Code:
void doi10qua2(int n)
{
    int a[10],i;                     Khai báo mảng a có 10 phần tử
    cout<<"\n- Doi "<<n<<" qua nhi phan la: ";
    for(i=0;i<8;i++)
    a [ i ] =0;             
    while (n>0)
    {
          a[ --i ]=n%2;
          n=n/2;
    }
    for(i=0;i<8;i++)
    cout<<a[ i ];
}

Đổi từ thập phân qua nhị phân bạn lấy số thập phân đó chia lần lượt cho 2 rồi ghi số dư từ dưới lên
VD:
10 chia 2 = 5 dư 0
sau đó lấy 5 chia tiếp
5 chia 2= 2 dư 1
2 chia 2=1 dư 0
1 chia 2=0 dư 1
=> số nhị phân của 10 là 1010

int a[ 10 ] ,i;
Khai báo mảng a có 10 phần tử


while (n>0)
{
a[--i]=n%2;
n=n/2;
}
đưa từng các giá trị chia được từ N vô các phần tử trong mảng

for(i=0;i<8;i++)
cout<<a [ i ] ;
in ra giá trị các phần tử trong mảng a

-----------------------Giờ lấy ví dụ đổi từ thập phân qua nhị phân cho số 10:
for(i=0;i<8;i++)
a [ i ] =0;
gán lần lượt a[0]=0 , a[1]=0 , a[2]=0 , a[3]=0 ..... a[6]=0 , a[7]=0

while (n>0)
{
a[--i]=n%2; --> cho i giảm dần tức là chạy từ 7 về 0
n=n/2;
}
i[7] = 10%2 = 0 . n lúc này sẽ bằng n/2 = 5
a[--i] ở đây sẽ là giảm đi i 1 đơn vị, tức là i[6] = 5%2 = 1 . n lúc này sẽ bằng n/2 = 2
a[--i] ở đây sẽ là giảm đi i 1 đơn vị, tức là i[5] = 2%2 = 0 . n lúc này sẽ bằng n/2 = 1
a[--i] ở đây sẽ là giảm đi i 1 đơn vị, tức là i[4] = 1%2 = 1 . n lúc này sẽ bằng n/2 = 0
mà điều kiện while (n>0) --> bắt buộc thoát vòng lặp


for(i=0;i<8;i++)
cout<<a [ i ] ;
--> in ra các giá trị : a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] --> 0 0 0 0 1 0 1 0
 
Last edited:
Đổi từ thập phân qua nhị phân bạn lấy số thập phân đó chia lần lượt cho 2 rồi ghi số dư từ dưới lên
VD:
10 chia 2 = 5 dư 0
sau đó lấy 5 chia tiếp
5 chia 2= 2 dư 1
2 chia 2=1 dư 0
1 chia 2=0 dư 1
=> số nhị phân của 10 là 1010

int a[ 10 ] ,i;
Khai báo mảng a có 10 phần tử


while (n>0)
{
a[--i]=n%2;
n=n/2;
}
đưa từng các giá trị chia được từ N vô các phần tử trong mảng

for(i=0;i<8;i++)
cout<<a [ i ] ;
in ra giá trị các phần tử trong mảng a

-----------------------Giờ lấy ví dụ đổi từ thập phân qua nhị phân cho số 10:
for(i=0;i<8;i++)
a [ i ] =0;
gán lần lượt a[0]=0 , a[1]=0 , a[2]=0 , a[3]=0 ..... a[6]=0 , a[7]=0

while (n>0)
{
a[--i]=n%2; --> cho i giảm dần tức là chạy từ 7 về 0
n=n/2;
}
i[7] = 10%2 = 0 . n lúc này sẽ bằng n/2 = 5
a[--i] ở đây sẽ là giảm đi i 1 đơn vị, tức là i[6] = 5%2 = 1 . n lúc này sẽ bằng n/2 = 2
a[--i] ở đây sẽ là giảm đi i 1 đơn vị, tức là i[5] = 2%2 = 0 . n lúc này sẽ bằng n/2 = 1
a[--i] ở đây sẽ là giảm đi i 1 đơn vị, tức là i[4] = 1%2 = 1 . n lúc này sẽ bằng n/2 = 0
mà điều kiện while (n>0) --> bắt buộc thoát vòng lặp


for(i=0;i<8;i++)
cout<<a [ i ] ;
--> in ra các giá trị : a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] --> 0 0 0 0 1 0 1 0
rất dễ hỉu.. có vẻ bạn rất hỉu mình hihi.. muốn làm đệ để dc chỉ nhìu bài hơn :D tập kiếm tiền mmo thôi mà code kinh dữ ^^
 
rất dễ hỉu.. có vẻ bạn rất hỉu mình hihi.. muốn làm đệ để dc chỉ nhìu bài hơn :D tập kiếm tiền mmo thôi mà code kinh dữ ^^

hi, mấy cái này là thuật toán cơ bản. Nhiều pro trong forum họ lo kiếm tiền nên ko ghé đây thôi. Chứ trình độ mấy bác hay viết tool trong forum này rất là kinh khủng. Mình chỉ biết mấy thứ cơ bản :D
 
bao nhiêu 1 coupo vậy bác
già quá, hết giúp thớt nổi rồi :(
Cần thông tin về giá coupon FB pm YH mình nhé: canem_tr
hi, mấy cái này là thuật toán cơ bản. Nhiều pro trong forum họ lo kiếm tiền nên ko ghé đây thôi. Chứ trình độ mấy bác hay viết tool trong forum này rất là kinh khủng. Mình chỉ biết mấy thứ cơ bản :D
mình mấy cái cơ bản còn khó khăn đây.. rảnh thì ngồi trao đổi giúp mình mấy bài mảng với hihi
 

Announcements

Forum statistics

Threads
426,355
Messages
7,175,956
Members
178,807
Latest member
8livecool1

Most viewed of week

Most viewed of week

Back
Top Bottom