рд▓рд┐рдЯрд┐рд▓-рдПрдВрдбрд┐рдпрди рдмрдирд╛рдо рдмрд┐рдЧ-рдПрдВрдбрд┐рдпрди

рдПрдХ рд╕рдордп рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрд╛рддрд╛рд░ рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдУрдПрд╕рдЖрдИ рдореЙрдбрд▓ рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рдкрд░рд┐рд╡рд╣рди рдкрд░рддреЛрдВ рдХреЗ рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдерд╛ред рд▓рдЧрд╛рддрд╛рд░ рдЗрд╕ рддрдереНрдп рдХреЛ рджрдмрд╛рддреЗ рд╣реБрдП рдХрд┐ рдХрдИ рдХреНрд╖реЗрддреНрд░ рдмрд┐рдЧ-рдПрдВрдбрд┐рдпрди рдореЗрдВ рдереЗ, рдФрд░ рдХреЛрдб рдХреЛ рд▓рд┐рдЯрд┐рд▓-рдПрдВрдбрд┐рдпрди рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЦреИрд░ рд▓рдЧрд╛рддрд╛рд░ ntohl (), htonl (), ntohs (), htons () рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдерд╛ ...


рдлреЛрдЯреЛ рд╕рд╛рдЗрд░реЛрдбреБрд░рд╛рди рджреНрд╡рд╛рд░рд╛, рдлреЛрдЯреЛ рд╕реНрд░реЛрдд: рдлрд╝реНрд▓рд┐рдХрд░ ред

рдкреИрдЯрд░реНрди рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛: рд▓рд┐рдЯрд┐рд▓рдПрдВрдбрд┐рдпрди <рдЯреА> рдФрд░ рдмрд┐рдЧрдПрдВрдбрд┐рдпрди <рдЯреА>ред

рдмрд╛рдЗрдЯ рдСрд░реНрдбрд░ рдкреИрдЯрд░реНрди рд▓рд┐рдЯрд┐рд▓рдПрдВрдбрд┐рдпрди:



рдмрд┐рдЧрдЗрдВрдбрд┐рдпрди рдмрд╛рдЗрдЯ рдСрд░реНрдбрд░ рдкреИрдЯрд░реНрди:



рдкреИрдЯрд░реНрди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:



рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:



рдЕрдм рдЖрдк рдЫреЛрдЯреЗ рдирд╛рдо u16be , u32be рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...

рдЗрди рдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЪреАрдЬрд╝ рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд░реЛрдВ + =, - =, * =, ++ рдФрд░ рдЕрдиреНрдп рдХреА рдХрдореА рд╣реИред рдСрдкрд░реЗрдЯрд░ рдХреЛрдб рдХреЗ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд▓реЗрдЦ рдореЗрдВ рд▓рд╛рдирд╛ рдЕрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдерд╛ред рдпрд╣рд╛рдБ LittleBigEndian.h (UPDATE1 рдореЗрдВ рдиреАрдЪреЗ рджреА рдЧрдИ рдирдИ рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ) рдФрд░ LittleBigEndianNames.h рдХреЗ рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВред

Update1:
рдЬреИрд╕рд╛ рдХрд┐ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ qehgt рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреЛрдб 64-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЗрд╕ рдирд┐рд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣рд╛рдБ LittleBigEndian.h (рдиреАрдЪреЗ UPDATE3 рдореЗрдВ рдирдпрд╛ рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ) рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдмрдЧ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

UPDATE2:
рдХреЙрдорд░реЗрдб рд╕рд┐рдХ рдиреЗ рджрд┐рдП рдЧрдП рдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕ рдХреА рдЧрддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬреЛ ht htl (), htonl (), ntohs (), htons () рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреАред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рджрд┐рдП рдЧрдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЯреЗрд╕реНрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдПрдХ рд╕рд╛рдкреЗрдХреНрд╖ рд╡реГрджреНрдзрд┐ рджреЗрдЦреА рдЧрдИред рдХрд┐рдП рдЧрдП рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Update3:
рдХреЙрдорд░реЗрдб рд░реАрдХреБрдм рдиреЗ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЧрддрд┐ рдмрдврд╝рд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рджреЗрдЦрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдЯреА рдХреЗ рдПрдХ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ ред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЛ LittleBigEndian.h рдХреЗ рдЕрдЧрд▓реЗ рд╕реНрд░реЛрдд рдХреЛрдб (UPDATE4 рдореЗрдВ рдиреАрдЪреЗ рджреА рдЧрдИ рдирдИ рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ) рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдзрдиреНрдпрд╡рд╛рдж!

UPDATE4:
рдХреЙрдорд░реЗрдб рд╡рдбреИрд╣ рдиреЗ рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕ рдФрд░ рдкреНрд░реАрдлрд┐рдХреНрд╕ рдЗрдВрдХреНрд░реАрдореЗрдВрдЯ рдФрд░ рдбрд┐рдХреНрд░реАрдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд┐рдпрд╛ ред рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг: LittleBigEndian.h ред

Source: https://habr.com/ru/post/In121811/


All Articles