当前位置: 首页 > 面试题库 >

Go中int类型的最大值

尚恩
2023-03-14
问题内容

如何指定可代表unsigned整数类型的最大值?

我想知道如何min在下面的循环中初始化,该循环从某些结构迭代计算最小和最大长度。

var minLen uint = ???
var maxLen uint = 0
for _, thing := range sliceOfThings {
  if minLen > thing.n { minLen = thing.n }
  if maxLen < thing.n { maxLen = thing.n }
}
if minLen > maxLen {
  // If there are no values, clamp min at 0 so that min <= max.
  minLen = 0
}

以便第一次通过比较minLen >= n


问题答案:

https://groups.google.com/group/golang-
nuts/msg/71c307e4d73024ce?pli=1

德语部分:

由于整数类型使用二进制补码运算,可以推断最小/最大常数值intuint。例如,

const MaxUint = ^uint(0)
const MinUint = 0
const MaxInt = int(MaxUint >> 1)
const MinInt = -MaxInt - 1

根据@CarelZA的评论:

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


 类似资料:
  • 还记得我们之前在第 7 小节和第 8 小节中提到的变量数据类型的概念吗?从这个小节开始到后面的几个小节中我们都会进行对 Go 语言中的数据类型相关知识点进行讲解,本节课我们主要讲解一下 Go 语言中处理带符号的整数的数据类型。 1. 定长类型 在 Go 语言中整形数据类型被细致地划分为了下面几种,根据可以存储数据的长度分为: 序号 类型 长度 1 int8 -128~127 2 int16 -32

  • 本文向大家介绍Golang中的int类型和uint类型到底有多大?,包括了Golang中的int类型和uint类型到底有多大?的使用技巧和注意事项,需要的朋友参考一下 在开始之前,我们先来看看uint 与 int 的区别 上面是图,下面是源码: 引言 今天调试一个问题,发现一个我无法理解的情况: 把64位的数字赋值给uint,我理解uint是32位的,为啥可以编译通过?但是我接着又在 playgr

  • 问题内容: 忽略允许您处理非常大的数字的特殊库,可以在PHP中存储的最大int值是多少? 问题答案: 从PHP手册: 整数的大小取决于平台,尽管通常的最大值约为20亿(32位带符号)。PHP不支持无符号整数。自PHP 4.4.0和PHP 5.0.5起,可以使用常数PHP_INT_SIZE确定整数大小,并使用常数PHP_INT_MAX确定最大值。 64位平台的最大值通常约为9E18,但PHP 7之前

  • 问题内容: 我看到一个数组的最大大小只能是一个Int的最大大小。Java为什么不允许大小为long-Max的数组? 问题答案: 您必须向Java设计人员解决“为什么”问题。其他任何人都只能推测。我的猜测是,他们认为20亿个元素的数组对于任何人都应该足够了(公平地说,这应该是足够的)。

  • 对堆栈溢出进行快速搜索会发现数字65535与一个16位无符号int相关联,但java使用的是32位int。将类型更改为double有效,就像简单地循环100,000次并在没有代码逻辑的情况下打印一样。我知道100,000^2高于最大int限制,但在我的代码中这个值从来没有存储为int。这是怎么回事?

  • 问题内容: 我在4Gb机器的64位linux操作系统中运行以下代码: 当我运行它时,我得到: 如果我更改,我将得到: 当我使用片大小的内存时,我原本希望如此,但是当我尝试使用时,我得到: 因此,显然我无法创建大小为的切片,这使我们想到了一个问题:如果内存不是问题,那么我在Go中无法创建的最大切片是什么? 我记得在Java中,原始数组索引是通过type来管理的,因此,原始数组的最大大小是的最大值,如