C语言中,-0x5B这种表达方式对吗?也就是说16进制的整型常量有负数吗?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/31 03:01:58
C语言中,-0x5B这种表达方式对吗?也就是说16进制的整型常量有负数吗?
我在VC6.0中,给变量赋值-0x1,用%d输出的值为-1,这没有什么问题.可是如果我给变量赋值-1,用%#x输出时,却得到了0xFFFFFFFF,符号没有了,奇怪!
我在VC6.0中,给变量赋值-0x1,用%d输出的值为-1,这没有什么问题.可是如果我给变量赋值-1,用%#x输出时,却得到了0xFFFFFFFF,符号没有了,奇怪!
没有任何问题.
0x5b只是16进制方式表示的整数,我们都知道整数是可以是正数或负数的,所以这样表示没有问题.
不论是二进制、八进制、十进制、十六进制甚至是三十二进制还是多少多少进制,都只是一种数值的表示方法而已,它们归根结底表示的都是整数,理解了这一点就好了.
----------------------
对补充信息的回答:
我说过,这些只是不同进制对整数的表示方法.八进制、十六进制同样可以表示负数.比如你举的例子,-1这个值,十六进制表示为0xFFFFFFFF.这里面第一位数(就是0x后面的第一个F),它的二进制值是1111,这4个1的第一位1就是符号位,为0表示整个数为正值,为1表示整个数为复制.
也就是说,0x8-0xf开头的十六进制数就是负数.
八进制类似.
再说一句,计算机程序中,我们平时的正负号(+和-)是为了描述十进制数使用的,其他进制有自己的正负值表示方法,并不使用正负号.
0x5b只是16进制方式表示的整数,我们都知道整数是可以是正数或负数的,所以这样表示没有问题.
不论是二进制、八进制、十进制、十六进制甚至是三十二进制还是多少多少进制,都只是一种数值的表示方法而已,它们归根结底表示的都是整数,理解了这一点就好了.
----------------------
对补充信息的回答:
我说过,这些只是不同进制对整数的表示方法.八进制、十六进制同样可以表示负数.比如你举的例子,-1这个值,十六进制表示为0xFFFFFFFF.这里面第一位数(就是0x后面的第一个F),它的二进制值是1111,这4个1的第一位1就是符号位,为0表示整个数为正值,为1表示整个数为复制.
也就是说,0x8-0xf开头的十六进制数就是负数.
八进制类似.
再说一句,计算机程序中,我们平时的正负号(+和-)是为了描述十进制数使用的,其他进制有自己的正负值表示方法,并不使用正负号.
C语言中,-0x5B这种表达方式对吗?也就是说16进制的整型常量有负数吗?
c语言题,下列四组常数中,均是合法整型常量的一组是
C语言中整型常量有几种形式,它们是如何表示的?
属于合法的C语言长整型常量的是?
C语言题目:下面四个选项中,均是合法整型常量的选项是( A ).请看图.
C语言中16进制常量用0x表示,那2进制常量用什么表示
0在C语言中是整型变量吗?
5.和1.000是正确的整型常量吗?怎么区分是不是正确的整型常量,有哪些特征?
C语言中命名常量与符号常量的区别
C语言整型常量问题一本参考书上讲“只有十进制数可以是负数,而八进制、十六进制数只能是无符号数”,但是课本上举例有“-02
C语言,(常量/常量)*变量与(变量/常量)*常量有什么不同吗
1.以下的选项中能正确表示Java语言中的一个整型常量的是(B).A) 12.B) -20 C) 1,000 D) 4