01/10/2018, 16:08
Lấy 2 chữ số cuối trong dãy hexa để checksum như thế nào?
Hi các bạn,
các bạn cho mình hỏi, bây giờ mình có 1 dãy số trong hệ hexa chưa biết độ dài
xxxxxxxxxxx
để checksum thì so sánh 2 số cuối với FF,
bây giờ làm thế nào để có thể lấy được 2 số cuối trong dãy số đó ra và so sánh với FF.
Bài liên quan
Giả sử dãy hexa có dạng
Axy
(A là 1 đống các chữ số; x, y là chữ số), thì giá trị theo hệ 10 của dãy hexa đó làA * 16^2 + x * 16 + y = A * 256 + x * 16 + y
0xff = 255
, cho nên muốn lấy 2 chữ số cuối của dãy hexa chỉ cần sử dụng thao tác AND (bitwise) với dãy và0xff
là được.Demo:
Còn có 1 cách nhẹ nhàng hơn, đó là convert dãy hexa đó ra string, rồi lấy 2 kí tự cuối cùng.
tks bạn nhiều
Cho mình hỏi thêm là khi mình convert qua string thì có 1 vấn đề là
như trong mã hex thì A - 10 … F-15
Khi chuyển qua string thì A này nó đang hiểu là 1 ký tự trong mã Ascci
và khi chuyển vể số thì A - 17 chứ không phải là 10
giờ làm thế nào để nó hiểu được A đây là 1 số chứ không phải là 1 ký tự
‘A’ = 65 chứ nhỉ.
Bạn cần so sánh với FF như thế nào?
Nếu là so sánh bằng nhau, thì so sánh trực tiếp với xâu
'ff'
.Nếu là so sánh khác, bạn đổi lại về hệ thập phân rồi tính toán.