thuongsykxps
Thành viên chính thức


- Tham gia
- 3/6/08
- Bài viết
- 67
- Được thích
- 20
Chào cả nhà!
Mình có 1 vấn đề mong cả nhà giúp đỡ.
Khiclick vào buttom thì ô A1-A10 là số 1
Khiclick tiếp cái thứ 2 thì ô A1-A10 chuyển thành số 0
Vàvòng lặp cứ thực hiện lại như vậy.
Mong mọi người giúp mình.
Cảm ơn cả nhà!
Sub Test()
Range("A1:A10").Value = Range("A1").Value Xor 1
End Sub
Em làm đươc rồi, cho em hỏi thêm mình muốn khi click vào thì ẩn dòng, click tiếp cái nữa thì hiện dòng, thầy giúp em nha.
Cảm ơn thầy nhiều!
Rows("6:10").Hidden = Not Rows("6:10").Hidden
End Sub
Mã:Range("A1:A10").Value = Range("A1").Value [B][COLOR=#0000cd]Xor[/COLOR][/B] 1 [FONT=Verdana] Rows("6:10").Hidden = Not Rows("6:10").Hidden[/FONT]
Đúng là quái chiêu, nhưng thử thay A1:A10 thành số khác ví dụ 999, rồi thay Xor 1 thành 2 hay 3 gì đó rồi thử cũng "hơi hơi" biết nó làm cái gì.Ndu lắm chuyện thật. Mấy cái vụ này hôm nay mới thấy.
Lúc đầu cứ tưởng Xor là do viết nhầm. Vậy ý nghĩa của nó là gì vậy ?
Cảm ơn nhiều !
Đúng là quái chiêu, nhưng thử thay A1:A10 thành số khác ví dụ 999, rồi thay Xor 1 thành 2 hay 3 gì đó rồi thử cũng "hơi hơi" biết nó làm cái gì.
Hì hì.
Tôi nhập số 99.
Với Xor 1 thì kết quả là 98 - 99
Với Xor 10 thì kết quả là 105 - 99
=> Chẳng hiểu gì sất.
01100011 = 99 (ta biểu diễn bằng 1 bai = 8 bit)
00000001 = 1
01100010 = 99 xor 1 - ta áp dụng xor cho từng cặp bit
Rõ ràng 01100010 = 98
01100010 = 98 (ta biểu diễn bằng 1 bai = 8 bit)
00000001 = 1
01100011 = 98 xor 1 - ta áp dụng xor cho từng cặp bit
Rõ ràng 01100011 = 99
01100011 = 99 (ta biểu diễn bằng 1 bai = 8 bit)
00001010 = 10
01101001 = 99 xor 10 - ta áp dụng xor cho từng cặp bit
Rõ ràng 01101001 = 105
01101001 = 105 (ta biểu diễn bằng 1 bai = 8 bit)
00001010 = 10
01100011 = 105 xor 10 - ta áp dụng xor cho từng cặp bit
Rõ ràng 01100011 = 99
1 and 0 = 0 and 1 = 0 and 0 = 0
1 and 1 = 1
xor là toán tử cũng như vd. and
Ta xét a xor b. Thường thì ta xét a, b cùng là giá trị lôgíc - TRUE/FALSE hoặc bit - 0/1
Nếu a và b có cùng giá trị (cùng TRUE, cùng FALSE, cùng 0 hoặc cùng 1) thì a xor b trả về 0. Còn
nếu a và b khác giá trị thì a xor b trả về 1.
Toàn bộ triết lý chỉ có thế thôi.
---------------
Tại sao 99 xor 1 = 98 và 98 xor 1 = 99, 99 xor 10 = 105 và 105 xor 10 = 99?
Mã:01100011 = 99 (ta biểu diễn bằng 1 bai = 8 bit) 00000001 = 1 01100010 = 99 xor 1 - ta áp dụng xor cho từng cặp bit Rõ ràng 01100010 = 98 01100010 = 98 (ta biểu diễn bằng 1 bai = 8 bit) 00000001 = 1 01100011 = 98 xor 1 - ta áp dụng xor cho từng cặp bit Rõ ràng 01100011 = 99 01100011 = 99 (ta biểu diễn bằng 1 bai = 8 bit) 00001010 = 10 01101001 = 99 xor 10 - ta áp dụng xor cho từng cặp bit Rõ ràng 01101001 = 105 01101001 = 105 (ta biểu diễn bằng 1 bai = 8 bit) 00001010 = 10 01100011 = 105 xor 10 - ta áp dụng xor cho từng cặp bit Rõ ràng 01100011 = 99
Nếu biểu diễn bằng 4 bai = 32 bit (giá trị Long, vd. những số lớn) thì các phép tính ở trên không thay đổi vì 0 xor 0 = 0
Nên lưu ý là AND tương tự. AND không chỉ là toán tử lôgíc mà cũng có thể là phép tính bit - ta AND cho từng cặp bit tương ứng và
Mã:1 and 0 = 0 and 1 = 0 and 0 = 0 1 and 1 = 1
ví dụ 105 and 10 = 8. Thử làm như trên tôi đã làm với xor thì sẽ thấy
Ndu lắm chuyện thật. Mấy cái vụ này hôm nay mới thấy.
Lúc đầu cứ tưởng Xor là do viết nhầm. Vậy ý nghĩa của nó là gì vậy ?
Cảm ơn nhiều !