C语言中short取值的问题

C语言中short取值的问题,第1张

你没理解16进制,16进制,每一位相当于4位二进制,所以0x1122正好是2个字节的整数,可以赋值给short,因为char是占一个字节,而0x11这样的显然是占1个字节啊,也不会整数举出的。

unsigned short d ;

printf("d = %u\n",d);

输出unsigned short ,unsigned int 一般用 %u

像unsigned long 输出的话一般用%lu

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

如果在16位计算机系统(如Turbo C)中,short类型和int类型都是占2个字节的内存空间,所以其取值范围都是-2^15~2^15-1

如果在32位计算机系统(如Visual C++)中,short类型占2个字节,而int类型占4个字节,因此它们的取值范围会不一致,此时,short的取值范围为:-2^15~2^15-1;而int的取值范围为:-2^31~2^31-1

具体各种机型,各类型的长度有所差别,你可以用sizeof(long)来求出你所用的机器的实际值。

一般地:

sizeof(char)=1

sizeof(short)=2

sizeof(int)=4

sizeof(long)=4或8

(1)C/C++规定int字长和机器字长相同;

(2) *** 作系统字长和机器字长未必一致;

(3)编译器根据 *** 作系统字长来定义int字长;

整形变量是不是32位这个问题不仅与具体的CPU架构有关,而且与编译器有关,所以int可以为32为或16为,而short为短整型变量,只能为16位。

以上就是关于C语言中short取值的问题全部的内容,包括:C语言中short取值的问题、怎么输出C语言的“unsigned short”、c语言中为什么short和int类型的取值范围一样等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10103289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存