nl:: Weave:: Encoding:: LittleEndian
เนมสเปซนี้มีฟังก์ชันสำหรับสิ่งต่อไปนี้
สรุป
- การจัดเรียงไบต์ใหม่โดยสัมพันธ์กับระบบโฮสต์ ตามค่าของแบบเรียงลำดับไบต์ Endian ขนาดเล็กสำหรับประเภท 16, 32 และ 64 บิต
- การดำเนินการเข้าถึงการแมปหน่วยความจำที่เรียบง่ายและมีประสิทธิภาพอย่างปลอดภัย ซึ่งอาจเกิดขึ้นที่ตำแหน่งหน่วยความจำที่ไม่สอดคล้อง โดยจะมีการเรียงลำดับไบต์ใหม่หรือไม่ก็ได้ ด้วยจำนวนไบต์ที่เรียงตามจำนวนไบต์ของปลายทางขนาดเล็ก 8, 16, 32 และ 64 บิต ทั้งแบบมีและไม่มีการจัดการตัวชี้
ในระบบโฮสต์ Endian ขนาดเล็กจะไม่มีการจัดลําดับไบต์ใหม่เกิดขึ้น ระบบอื่นๆ จะมีการจัดลําดับไบต์ใหม่ตามความเหมาะสม
ฟังก์ชัน |
|
---|---|
Get16(const uint8_t *p)
|
uint16_t
อ่านหน่วยความจำซึ่งอาจจะไม่ตรงแนวของไบต์ Endian เล็กน้อยที่เรียงลำดับค่า 16 บิตจากที่อยู่ตัวชี้ที่ระบุ แล้วเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย
|
Get32(const uint8_t *p)
|
uint32_t
อ่านหน่วยความจำซึ่งอาจจะไม่ตรงของไบต์ส่วนน้อยที่เรียงลำดับค่า 32 บิตจากที่อยู่ตัวชี้ที่ระบุ แล้วเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย
|
Get64(const uint8_t *p)
|
uint64_t
อ่านหน่วยความจำซึ่งอาจจะไม่ตรงแนวของไบต์ Endian ขนาดเล็กที่เรียงลำดับค่า 64 บิตจากที่อยู่ตัวชี้ที่ระบุ แล้วเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย
|
HostSwap16(uint16_t v)
|
uint16_t
การสลับลำดับไบต์ตามค่าของ 16 บิตที่ระบุจะดำเนินการอย่างมีเงื่อนไขตามที่จำเป็นสำหรับระบบเป้าหมาย โดยถือว่าอยู่ในลำดับไบต์เอนเดียนเล็กน้อยไปยังระบบเป้าหมาย (เช่น
|
HostSwap32(uint32_t v)
|
uint32_t
การสลับลำดับไบต์ตามค่าของค่า 32 บิตที่ระบุจะดำเนินการอย่างมีเงื่อนไขตามที่จำเป็นสำหรับระบบเป้าหมาย โดยถือว่ามีการเรียงลำดับไบต์เอนเดียนเล็กน้อยไปยังระบบเป้าหมาย (นั่นคือ
|
HostSwap64(uint64_t v)
|
uint64_t
การดำเนินการนี้แบบมีเงื่อนไขจะดำเนินการสลับลำดับไบต์ตามค่าของระบบเป้าหมายตามที่จำเป็นสำหรับระบบเป้าหมาย โดยถือว่ามีการเรียงลำดับไบต์เอนเดียนเล็กน้อยไปยังระบบเป้าหมาย (นั่นคือ
|
Put16(uint8_t *p, uint16_t v)
|
void
เขียนหน่วยความจำที่อาจไม่สอดคล้องของไบต์ของระบบเป้าหมายที่เรียงลำดับค่า 16 บิตไปยังที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในการเรียงลำดับไบต์แบบ Endian เล็กน้อย
|
Put32(uint8_t *p, uint32_t v)
|
void
เขียนหน่วยความจำที่อาจไม่สอดคล้องของไบต์ของระบบเป้าหมายที่เรียงลำดับค่า 32 บิตไปยังที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในการเรียงลำดับไบต์แบบ Endian เล็กน้อย
|
Put64(uint8_t *p, uint64_t v)
|
void
เขียนหน่วยความจำที่อาจไม่สอดคล้องของไบต์ของระบบเป้าหมายที่เรียงลำดับค่า 64 บิตไปยังที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในการเรียงลำดับไบต์แบบ Endian เล็กน้อย
|
Read16(uint8_t *& p)
|
uint16_t
อ่านหน่วยความจำที่อาจไม่สอดคล้องของไบต์ส่วนน้อยที่เรียงลำดับค่า 16 บิตจากที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย และเพิ่มตัวชี้ครั้งละ 16 บิต (2 ไบต์)
|
Read16(const uint8_t *& p)
|
uint16_t
อ่านหน่วยความจำที่อาจไม่สอดคล้องของไบต์ส่วนน้อยที่เรียงลำดับค่า 16 บิตจากที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย และเพิ่มตัวชี้ครั้งละ 16 บิต (2 ไบต์)
|
Read32(uint8_t *& p)
|
uint32_t
อ่านหน่วยความจำที่อาจไม่สอดคล้องของไบต์ส่วนน้อยที่เรียงลำดับค่า 32 บิตจากที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย และเพิ่มตัวชี้ครั้งละ 32 บิต (4 ไบต์)
|
Read32(const uint8_t *& p)
|
uint32_t
อ่านหน่วยความจำที่อาจไม่สอดคล้องของไบต์ส่วนน้อยที่เรียงลำดับค่า 32 บิตจากที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย และเพิ่มตัวชี้ครั้งละ 32 บิต (4 ไบต์)
|
Read64(uint8_t *& p)
|
uint64_t
อ่านหน่วยความจำที่อาจมีไบต์ไม่ตรงของไบต์ส่วนน้อยที่เรียงลำดับค่า 64 บิตจากที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย และเพิ่มตัวชี้ครั้งละ 64 บิต (8 ไบต์)
|
Read64(const uint8_t *& p)
|
uint64_t
อ่านหน่วยความจำที่อาจมีไบต์ไม่ตรงของไบต์ส่วนน้อยที่เรียงลำดับค่า 64 บิตจากที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย และเพิ่มตัวชี้ครั้งละ 64 บิต (8 ไบต์)
|
Write16(uint8_t *& p, uint16_t v)
|
void
เขียนหน่วยความจำที่อาจไม่สอดคล้องของไบต์ของระบบเป้าหมายที่เรียงลำดับค่า 16 บิตไปยังที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในการเรียงลำดับไบต์แบบ Endian เล็กน้อย
|
Write32(uint8_t *& p, uint32_t v)
|
void
เขียนหน่วยความจำที่อาจไม่สอดคล้องของไบต์ของระบบเป้าหมายที่เรียงลำดับค่า 32 บิตไปยังที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในการเรียงลำดับไบต์แบบ Endian เล็กน้อย
|
Write64(uint8_t *& p, uint64_t v)
|
void
เขียนหน่วยความจำที่อาจไม่สอดคล้องของไบต์ของระบบเป้าหมายที่เรียงลำดับค่า 64 บิตไปยังที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในการเรียงลำดับไบต์แบบ Endian เล็กน้อย
|
ฟังก์ชัน
Get16
uint16_t Get16( const uint8_t *p )
อ่านหน่วยความจำซึ่งอาจจะไม่ตรงแนวของไบต์ Endian เล็กน้อยที่เรียงลำดับค่า 16 บิตจากที่อยู่ตัวชี้ที่ระบุ แล้วเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
ในการจัดลำดับไบต์ ค่า 16 บิตที่ที่อยู่ตัวชี้ที่ระบุ (หากจำเป็น)
|
Get32
uint32_t Get32( const uint8_t *p )
อ่านหน่วยความจำซึ่งอาจจะไม่ตรงของไบต์ส่วนน้อยที่เรียงลำดับค่า 32 บิตจากที่อยู่ตัวชี้ที่ระบุ แล้วเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
ในการจัดลำดับไบต์ ค่า 32 บิตที่ที่อยู่ตัวชี้ที่ระบุ (หากจำเป็น)
|
Get64
uint64_t Get64( const uint8_t *p )
อ่านหน่วยความจำซึ่งอาจจะไม่ตรงแนวของไบต์ Endian ขนาดเล็กที่เรียงลำดับค่า 64 บิตจากที่อยู่ตัวชี้ที่ระบุ แล้วเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
ไบต์ที่เรียงลำดับใหม่ตามค่า 64 บิตตามที่อยู่ตัวชี้ที่ระบุ
|
HostSwap16
uint16_t HostSwap16( uint16_t v )
การสลับลำดับไบต์ตามค่าของ 16 บิตที่ระบุจะดำเนินการอย่างมีเงื่อนไขตามที่จำเป็นสำหรับระบบเป้าหมาย โดยถือว่าอยู่ในลำดับไบต์เอนเดียนเล็กน้อยไปยังระบบเป้าหมาย (เช่น
(โฮสต์) ไบต์ตามลำดับ
ดังนั้น ในระบบเป้าหมายปลายทางขนาดเล็ก นี่จึงเป็นการทดสอบที่ไม่มีการดำเนินการ ส่วนในระบบเป้าหมายปลายทางขนาดใหญ่ การดำเนินการดังกล่าวจะทำการเรียงลำดับใหม่
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
สลับลำดับไบต์แล้ว หากจำเป็น
|
HostSwap32
uint32_t HostSwap32( uint32_t v )
การสลับลำดับไบต์ตามค่าของค่า 32 บิตที่ระบุจะดำเนินการอย่างมีเงื่อนไขตามที่จำเป็นสำหรับระบบเป้าหมาย โดยถือว่ามีการเรียงลำดับไบต์เอนเดียนเล็กน้อยไปยังระบบเป้าหมาย (นั่นคือ
(โฮสต์) ไบต์ตามลำดับ
ดังนั้น ในระบบเป้าหมายปลายทางขนาดเล็ก นี่จึงเป็นการทดสอบที่ไม่มีการดำเนินการ ส่วนในระบบเป้าหมายปลายทางขนาดใหญ่ การดำเนินการดังกล่าวจะทำการเรียงลำดับใหม่
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
สลับลำดับไบต์แล้ว หากจำเป็น
|
HostSwap64
uint64_t HostSwap64( uint64_t v )
การดำเนินการนี้แบบมีเงื่อนไขจะดำเนินการสลับลำดับไบต์ตามค่าของระบบเป้าหมายตามที่จำเป็นสำหรับระบบเป้าหมาย โดยถือว่ามีการเรียงลำดับไบต์เอนเดียนเล็กน้อยไปยังระบบเป้าหมาย (นั่นคือ
(โฮสต์) ไบต์ตามลำดับ
ดังนั้น ในระบบเป้าหมายปลายทางขนาดเล็ก นี่จึงเป็นการทดสอบที่ไม่มีการดำเนินการ ส่วนในระบบเป้าหมายปลายทางขนาดใหญ่ การดำเนินการดังกล่าวจะทำการเรียงลำดับใหม่
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
สลับลำดับไบต์แล้ว หากจำเป็น
|
Put16
void Put16( uint8_t *p, uint16_t v )
เขียนหน่วยความจำที่อาจไม่สอดคล้องของไบต์ของระบบเป้าหมายที่เรียงลำดับค่า 16 บิตไปยังที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในการเรียงลำดับไบต์แบบ Endian เล็กน้อย
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
Put32
void Put32( uint8_t *p, uint32_t v )
เขียนหน่วยความจำที่อาจไม่สอดคล้องของไบต์ของระบบเป้าหมายที่เรียงลำดับค่า 32 บิตไปยังที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในการเรียงลำดับไบต์แบบ Endian เล็กน้อย
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
Put64
void Put64( uint8_t *p, uint64_t v )
เขียนหน่วยความจำที่อาจไม่สอดคล้องของไบต์ของระบบเป้าหมายที่เรียงลำดับค่า 64 บิตไปยังที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในการเรียงลำดับไบต์แบบ Endian เล็กน้อย
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
Read16
uint16_t Read16( uint8_t *& p )
อ่านหน่วยความจำที่อาจไม่สอดคล้องของไบต์ส่วนน้อยที่เรียงลำดับค่า 16 บิตจากที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย และเพิ่มตัวชี้ครั้งละ 16 บิต (2 ไบต์)
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
ค่า 16 บิตในที่อยู่ตัวชี้ที่ระบุ หากจำเป็น ระบบจะสลับลำดับไบต์
|
Read16
uint16_t Read16( const uint8_t *& p )
อ่านหน่วยความจำที่อาจไม่สอดคล้องของไบต์ส่วนน้อยที่เรียงลำดับค่า 16 บิตจากที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย และเพิ่มตัวชี้ครั้งละ 16 บิต (2 ไบต์)
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
ค่า 16 บิตในที่อยู่ตัวชี้ที่ระบุ หากจำเป็น ระบบจะสลับลำดับไบต์
|
Read32
uint32_t Read32( uint8_t *& p )
อ่านหน่วยความจำที่อาจไม่สอดคล้องของไบต์ส่วนน้อยที่เรียงลำดับค่า 32 บิตจากที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย และเพิ่มตัวชี้ครั้งละ 32 บิต (4 ไบต์)
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
สลับลำดับไบต์ที่ค่า 32 บิตตามที่อยู่ตัวชี้ที่ระบุ
|
Read32
uint32_t Read32( const uint8_t *& p )
อ่านหน่วยความจำที่อาจไม่สอดคล้องของไบต์ส่วนน้อยที่เรียงลำดับค่า 32 บิตจากที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย และเพิ่มตัวชี้ครั้งละ 32 บิต (4 ไบต์)
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
สลับลำดับไบต์ที่ค่า 32 บิตตามที่อยู่ตัวชี้ที่ระบุ
|
Read64
uint64_t Read64( uint8_t *& p )
อ่านหน่วยความจำที่อาจมีไบต์ไม่ตรงของไบต์ส่วนน้อยที่เรียงลำดับค่า 64 บิตจากที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย และเพิ่มตัวชี้ครั้งละ 64 บิต (8 ไบต์)
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
สลับลำดับไบต์ที่ค่า 64 บิตตามที่อยู่ตัวชี้ที่ระบุ
|
Read64
uint64_t Read64( const uint8_t *& p )
อ่านหน่วยความจำที่อาจมีไบต์ไม่ตรงของไบต์ส่วนน้อยที่เรียงลำดับค่า 64 บิตจากที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในลำดับไบต์ของระบบเป้าหมาย และเพิ่มตัวชี้ครั้งละ 64 บิต (8 ไบต์)
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
สลับลำดับไบต์ที่ค่า 64 บิตตามที่อยู่ตัวชี้ที่ระบุ
|
Write16
void Write16( uint8_t *& p, uint16_t v )
เขียนหน่วยความจำที่อาจไม่สอดคล้องของไบต์ของระบบเป้าหมายที่เรียงลำดับค่า 16 บิตไปยังที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในการเรียงลำดับไบต์แบบ Endian เล็กน้อย
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
Write32
void Write32( uint8_t *& p, uint32_t v )
เขียนหน่วยความจำที่อาจไม่สอดคล้องของไบต์ของระบบเป้าหมายที่เรียงลำดับค่า 32 บิตไปยังที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในการเรียงลำดับไบต์แบบ Endian เล็กน้อย
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
Write64
void Write64( uint8_t *& p, uint64_t v )
เขียนหน่วยความจำที่อาจไม่สอดคล้องของไบต์ของระบบเป้าหมายที่เรียงลำดับค่า 64 บิตไปยังที่อยู่ตัวชี้ที่ระบุ ดำเนินการเรียงลำดับไบต์ใหม่ตามที่จำเป็น เพื่อให้ระบบเป้าหมายใส่ค่าไว้ในการเรียงลำดับไบต์แบบ Endian เล็กน้อย
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|