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 后只能表示正数,不能再表示负数了。
    无符号数的输出
posted @ 2018-10-27 23:37  小步快跑!!!!!  阅读(180)  评论(0编辑  收藏  举报