m.n cho e hỏi thầy e có cho hai bài tập này nhưng e không hiểu lắm. nhập vào 2 số nguyên x,y tính: là sao hả m.n cộng trừ nhân chia thì biết chứ cái này bó tay rồi…
(x << 2) + ( y>>2 )
(x | y) – (x & y)
m.n cho e hỏi thầy e có cho hai bài tập này nhưng e không hiểu lắm. nhập vào 2 số nguyên x,y tính: là sao hả m.n cộng trừ nhân chia thì biết chứ cái này bó tay rồi…
(x << 2) + ( y>>2 )
(x | y) – (x & y)
Cái này để mình ví dụ là bạn hiểu
Ví dụ
Khi nhập
x = 5 thì 5 nó đc biết diễn dưới dạng bit là : 101
như đề bài x << 2 có nghĩa là dịch qua trái 2 bit => 10100 <=> x =20
tương tự
y = 10 thì 10 nó đc biết diễn dưới dạng bit là : 1010
như đề bài y >> 2 có nghĩa là dịch qua phải 2 bit => 10 <=> 2
Kết Luận
nếu kiểu của nó là số nguyên
(x << 2) + ( y>>2 ) = 20 + 2 = 22
nếu là ở dạng bit thì có dạng là
10100 + 00010 = 10110
Code: câu 1
#include <iostream>
#include<bitset>
using namespace std;
int main()
{
int x, y;
cout << "\nNhap vao x: "<<endl;
cin>>x;
cout<<"\nNhap vao y: "<<endl;
cin>>y;
int ketQua = ( x<<2 ) + ( y >> 2);
cout<<"\nKet qua duoi dang so nguyen la : "<<ketQua;
cout<<"\nKet qua duoi dang so nhi phan la : "<<bitset<6>(ketQua)<<endl;
return 0;
}
Câu 2
Toán tử | (toán tử Or ) : nghĩa là chỉ cần một cái đúng thì cả hai cũng đúng
Ví dụ :
cho x = 5, y = 12
Ta có:
(x | y) = 5 | 12 được biểu diễn như sau :
0101 <=> 5
1100 <=> 12
--------
1101 <=> 13
=> (x | y) = 13
Tiếp tục
Toán tử (&) : nghĩa là đúng khi cả hai cùng đúng
(x & y) = 5 & 13 được biểu diễn như sau:
0101 <=> 5
1100 <=> 13
-------
0100 <=> 4
(x | y) – (x & y)
<=> ( 5 | 12) - ( 5 & 13) =13 - 4 = 9
Code câu 2:
#include <iostream>
#include<bitset>
using namespace std;
int main()
{
int x, y;
cout << "\nNhap vao x: "<<endl;
cin>>x;
cout<<"\nNhap vao y: "<<endl;
cin>>y;
int ketQua = ( x| y ) - ( x & y);
cout<<"\nKet qua duoi dang so nguyen la : "<<ketQua;
cout<<"\nKet qua duoi dang so nhi phan la : "<<bitset<6>(ketQua)<<endl;
return 0;
}
công phu quá. hơi ngơ ngơ 1 xíu kk. cảm ơn bạn nka
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?