计算机中为什么最⼤的数值为127?
  计算机中为什么最⼤的数值为127?店铺认为可以从计算机中数值的表⽰中可以得出结论。
  计算机很笨,只认识0和1,也就是所谓的⼆进制。现实中的东西要放进电脑,⼀定要转化为0和1组成的数字串,不同的0和1的组合代表了不同的东西,这其实就是编码。这是最基本的。还有很多编码不是将某种东西直接变成0和1,⽽是编码成别的数字串,这些数字串也能代表不同的东西,然后再将这些数字串变成0和1的数字串,再放进计算机中。
  数值在⼆进制中的3种表⽰分别为:原码、反码和补码。
  原码:将⼀个整数,转换成⼆进制,就是其原码。如单字节的5的原码为:0000 0101;-5的原码为1000 0101。
  反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每⼀位取反。如单字节的5的反码为:0000 0101;-5的反码为1111 1010。
  补码:正数的补码就是其原码;负数的反码+1就是补码。如单字节的5的补码为:0000 0101;-5的原码为1000 0101。
  为什么在计算机中,负数⽤补码表⽰呢?为什么不直接⽤原码表⽰?如单字节-5:1000 0101。求补码原则:(1)正数补码还是他本⾝ (2)负数补码,符号位变成1,其他位取负数的绝对值后按位取反再加1 (3)补码中⾼位进位都直接丢掉。
  C语⾔中整型常量有三种不同的表⽰形式:
电脑c语言编译器  1、⼋进制整型常量:在⼋进制数值前⾯加前缀“0”,其数码取值为0~7。例如:054、0567、05421。
  2、⼗六进制整型常量:前缀为“0X”或“0x“,其数码取值为0~9、A~F 或a~f。例如:0X3D、0XE0、0xfff等。
3、⼗进制整型常量:既⽆前缀也⽆后缀。例如:25
4、74
5、890等。如将存储为long类型,需要在数字序列最后附⼀个字母L 或 l 作为后缀。例如:245L、7850L、124l等。
  ⼀般来说,整数常量是被当作 int 类型(32位)来存储的。如果我们使⽤的整数常量超出了 int 的表⽰范围,C 语⾔规定编译器⾃动使⽤unsigned int 来处理这个常量。如果unsigned 也不⾜以表⽰这个常量的
话,编译器就会⽤ long long。如果还表⽰不了的话,那就⽤ unsigned long long。如果 unsigned long long 也表⽰不了,那么编译器就没辙了。例如:如果 int 是 16 位的话,它就表⽰不了常量 1000000。编译器会使⽤ long long来处理这个常量,因为 unsigned int 也表⽰不了 1000000 。
  同样,⼗六进制和⼋进制整数常量通常也是被作为 int 来处理。但是,当我们使⽤的常量超出了 int 的表⽰范围后,编译器会依次使⽤unsigned int,long long 和unsigned long long。直到所使⽤的类型⾜以表⽰那个常量为⽌。
  补码⼩技巧
  注意⼀个数的补码和其相反数的补码之间的关系是,这个数的补码各位取反后加1得到其相反数的补码。例如-128的相反数和0的相反数在计算机⾥⾯还是本⾝,-128补码是1000 0000,各位取反加⼀后还是1000 0000故相反数不变;0的补码 0000 0000,各位取反加⼀后仍为0000 0000(⾼位⾃动溢出)。其他的数的相反数概念在数学和计算机中是⼀样的。⽐如-1的补码1111 1111,其相反数的补码是0000 0001。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。