回答

收藏

Go 中 int 类型的最大值

技术问答 技术问答 313 人阅读 | 0 人回复 | 2023-09-12

如何指定unsigned最大值可以表示整数类型?9 p# ]( S% w9 u% U6 L
我想知道该怎么办min在以下循环中初始化,迭代计算某些结构的最小和最大长度。
% s$ `) A4 e$ z
    5 ~+ L3 z3 Q, @) U$ q, e/ [
  • var minLen uint = ???var maxLen uint = 0for _,thing := range sliceOfThings {  if minLen > thing.n { minLen = thing.n }  if maxLen  maxLen {  / If there are no values,clamp min at 0 so that min 第一时间通过比较,minLen >= n。
    " A4 p  o& z# k. D5 l* Y0 I
  •                                                                9 V. s% L7 B4 c
  •     解决方案:                                                               
    ! K: i8 b, _1 B
  •                                                                 相关部分:+ O0 m1 t2 s+ R; _1 Z2 B
  • 由于整数类型采用二进制补码操作,可以推断最小/最大常数值int和uint。例如,9 v5 V0 T; H" f. b# ]5 N
  • golangconst MaxUint = ^uint(0) const MinUint = 0 const MaxInt = int(MaxUint >> 1) const MinInt = -MaxInt - 1; w' x7 V" ]" S6 G. {3 J: F
  • 根据@CarelZA 的评论:[code]uint8  : 0 to 255 uint16 : 0 to 65535 uint32 : 0 to 4294967295 uint64 : 0 to 18446744073709551615 int8   : -128 to 127 int16  : -32768 to 32767 int32  : -2147483648 to 2147483647 int64  : -9223372036854775808 to 9223372036854775807: b- m7 O) b: t8 R1 \' i: V* r- y. Z
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则