http urls monitor.

convert.go 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. // 均采用大端字节序,事实上这个字节序没有任何用处,
  2. // 只要服务器和客户端约定采用相同的字节序就行
  3. package convert
  4. func Int64ToBytes(v int64) []byte {
  5. buf := make([]byte, 8)
  6. buf[0] = byte(v >> 56)
  7. buf[1] = byte(v >> 48)
  8. buf[2] = byte(v >> 40)
  9. buf[3] = byte(v >> 32)
  10. buf[4] = byte(v >> 24)
  11. buf[5] = byte(v >> 16)
  12. buf[6] = byte(v >> 8)
  13. buf[7] = byte(v)
  14. return buf
  15. }
  16. func Uint32ToBytes(v uint32) []byte {
  17. buf := make([]byte, 4)
  18. buf[0] = byte(v >> 24)
  19. buf[1] = byte(v >> 16)
  20. buf[2] = byte(v >> 8)
  21. buf[3] = byte(v)
  22. return buf
  23. }
  24. func Int32ToBytes(v int32) []byte {
  25. buf := make([]byte, 4)
  26. buf[0] = byte(v >> 24)
  27. buf[1] = byte(v >> 16)
  28. buf[2] = byte(v >> 8)
  29. buf[3] = byte(v)
  30. return buf
  31. }
  32. func Uint16ToBytes(v uint16) []byte {
  33. buf := make([]byte, 2)
  34. buf[0] = byte(v >> 8)
  35. buf[1] = byte(v)
  36. return buf
  37. }
  38. func Int16ToBytes(v int16) []byte {
  39. buf := make([]byte, 2)
  40. buf[0] = byte(v >> 8)
  41. buf[1] = byte(v)
  42. return buf
  43. }
  44. func BytesToUint32(buf []byte) uint32 {
  45. v := uint32(buf[0])<<24 | uint32(buf[1])<<16 | uint32(buf[2])<<8 | uint32(buf[3])
  46. return v
  47. }
  48. func BytesToInt64(buf []byte) int64 {
  49. v := int64(buf[0])<<56 | int64(buf[1])<<48 | int64(buf[2])<<40 | int64(buf[3])<<32 | int64(buf[4])<<24 | int64(buf[5])<<16 | int64(buf[6])<<8 | int64(buf[7])
  50. return v
  51. }
  52. func BytesToInt32(buf []byte) int32 {
  53. v := int32(buf[0])<<24 | int32(buf[1])<<16 | int32(buf[2])<<8 | int32(buf[3])
  54. return v
  55. }
  56. func BytesToUint16(buf []byte) uint16 {
  57. v := uint16(buf[0])<<8 | uint16(buf[1])
  58. return v
  59. }
  60. func BytesToInt16(buf []byte) int16 {
  61. v := int16(buf[0])<<8 | int16(buf[1])
  62. return v
  63. }