Mình có đoạn code này trên mạng của một bạn nào đó liên quan đến việc đưa một số thập phân sang nhị phân, mong mọi người giải đáp ý nghĩa của dòng lệnh if(((m) & ((1L) << (n))) !=0)
, cách thức hoạt động của đoạn code này.
template <typename T>
void ChuyenNhiPhan(T n)
{
int i=0;
for(i=sizeof(n)*8-1;i>=0;i--)
{
cout<<(GiaTri(n,i)?"1":"0");
if(0==1%4)
cout<<" ";
}
cout<<endl;
}
bool GiaTri(long m, int n)
{
if(((m) & ((1L) << (n))) !=0) // Dòng này
return true;
return false;
}