我/计算机如何判断二进制数是有符号整数还是无符号整数?例如,二进制数 1000 0001 如果有符号,则可以解释为 -128,如果无符号,则可以解释为 129。
在 C 语言(据我所知)中使用无符号整数的一个优点是,它使您能够使用更大的整数,因为通过不定义符号可以获得额外的位。然而,在我看来,你需要在某个地方有一些东西来跟踪第一位是否代表一个符号,或者只是描述数字大小的一部分。
小智 5
在内存中,无论是无符号还是有符号,计算机都会将二进制表示形式存储为 10000001。仅通过查看内存中的数字,不可能将二进制数分类为有符号或无符号。我们需要指示来判断是否应该将此数字视为无符号或有符号。这就是编译器发挥作用的地方。作为程序员,您将将该数字指定为有符号数和无符号数。编译器将翻译编写的代码并生成该数字所需的指令。请注意,根据编程语言的不同,可能有不同的生成这些指令的方法。要记住的重要部分是,内存中的二进制数没有区别,只是程序员如何向编译器传达应如何处理该数字的区别。