30/09/2018, 18:35

các bạn làm ơn cho mình hỏi về phần con trỏ này với mình mới học về phần này nên hơi bỡ ngỡ

#include <iostream>
#include <conio.h>
using namespace std;

int nhiphan(unsigned n)
{
    n>>1?nhiphan(n>>1):0;
    printf("%d",n&1);
}

void nhiphan(float n)
{
       nhiphan(*(unsigned *)(void*)&n);
}

int main()
{
	unsigned n;
    cout<<"
 Nhap n = ";
    cin>>n;
    nhiphan(n);
    getch();
}

các bạn cho mình hỏi ý nghĩa của 2 dòng code này được không ạ ?

    n>>1?nhiphan(n>>1):0;
    printf("%d",n&1);

       nhiphan(*(unsigned *)(void*)&n);
... viết 20:35 ngày 30/09/2018
mọi người xem giúp em code này, code này là chuyển đổi số thực sang mã nhị phân. #include <iostream> using namespace std; void nhiphan(unsigned n) { n >> 1 ? nhiphan(n >> 1) : 0; cout << (n & 1); } void nhiphan(float n) { nhiphan(*(unsigned *)(void*)&n); } int main() { nhiphan(3.9f); system("pause"); return 0; } cho em hỏi là *(unsigned *)(void *) &n nghĩa là gì ạ??? với lại n >> 1 theo em biết là phép dịch chuyển bit sang phải, nghĩa là chia cho 2 ^ 1, vậy khi nào thì nó nhận giá…
Bài liên quan
0