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