欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

2018-10-27 22:44:33 c language

程序员文章站 2022-10-16 16:41:48
2018-10-27 22:44:33 c language ......

2018-10-27  22:44:33 c language

  1. 标准的c语言并不支持上面的二进制写法,只是有些编译器自己进行了扩展,才支持二进制数字。并不是所有的编译器都支持二进制数字,只有一部分编译器支持,并且跟编译器的版本有关系。
  2. 十六进制数字的表示用到了英文字母,有大小写之分,要在格式控制符中体现出来:
  3. 八进制数字和十进制数字不区分大小写,所以格式控制符都用小写形式。如果你比较叛逆,想使用大写形式,那么行为是未定义的,
  4. 输出二进制,八进制,十进制,十六进制的时候为了更好的区分你到底输入的进制,可以通过在输出的时候加#。
c语言中的正负数及其输出
  • c语言规定,把内存的最高位作为符号位。
  • 在编程语言中,计数往往是从0开始,例如字符串 "abc123",我们称第 0 个字符是 a,第 1 个字符是 b,第 5 个字符是 3。这和我们平时从 1 开始计数的习惯不一样,大家要慢慢适应,培养编程思维。
  • short、int 和 long 类型默认都是带符号位的,符号位以外的内存才是数值位。如果只考虑正数,那么各种类型能表示的数值范围(取值范围)就比原来小了一半。
  • 但是在很多情况下,我们非常确定某个数字只能是正数,比如班级学生的人数、字符串的长度、内存地址等,这个时候符号位就是多余的了,就不如删掉符号位,把所有的位都用来存储数值,这样能表示的数值范围更大(大一倍)。
  • c语言允许我们这样做,如果不希望设置符号位,可以在数据类型前面加上 unsigned 关键字。例如:
  1. unsigned int b = 1002;成为无符号整数1002.
  • 使用了 unsigned 后只能表示正数,不能再表示负数了。
    无符号数的输出