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