01/10/2018, 11:35

Gán giá trị vào mảng ký tự

Em có một mảng 8 byte rỗng
char str[8];

trong một vòng while sinh ra một biến x
Em muốn lưu giá trị đó vào str[8] với kích thước là 2 bytes, các x tiếp theo sẽ ghi tiếp vào 2 bytes tiếp trong vùng nhớ của str[8]
Đại loại là

loop1: x = str[0,1]
loop2: x = str[2,3]
loop3: x = str[4,5]
loop4: x = str[6,7]

Bác nào có thể cho em ý tưởng hoặc keyword để làm bài này không ạ.

Em xin cám ơn.

Khoa NTA viết 13:37 ngày 01/10/2018

Câu hỏi của bạn khá khó hiểu vì bạn tự lồng nhiều tiểu tiết không liên quan. Ý bạn là muốn mỗi 2 bytes trong str sẽ được “nối” thành 1 giá trị có kích thước 2 bytes?
Tưởng tượng đơn giản như sau, dùng bitwise:

1 byte:
 0xa1: 1010_0001
 0xb2: 1011_0010

2 bytes:
 0xa1: 0000_0000_1010_0001
 0xa1 << 8: 1010_0001_0000_0000             # Dịch trái 8 bits
 0xa1 << 8 | 0xb2: 1010_0001_1011_0010      # Toán tử `|` dùng để đem 0xb2 vào đuôi còn trống của 0xa1
  == 0xa1b2

Bài liên quan
0