准备的材料有:计算机、c语言编译器。
1.首先,打开c语言编译器并创建一个新的初始值。cpp文件,例如:测试.cpp.
2.在测试.cpp文件中,输入c语言代码:unsignedinta=1024printf(%u,a)。
3.编译器运行测试.cpp此时,已成功定义并输出有符号整数。
仅计算机01,无符号,包括浮点、整数。因此,一个数字在计算机内存中的意义取决于程序员如何处理它。例如,在一台8位计算机上,程序员把它当作一个未修正的数字,即255,当作一个有符号的数字,即-1,程序员也可以把它当作一个字符。例如,如果使用printf打印,则可以使用%u%、d%、x%c打印相同的变量。它在内存中完全相同,但在打印时却不相同。除了程序员如何理解这些数据,还有另一个区别,那就是指令。据说有符号乘法和无符号乘法是两种指令。您使用的指令是指定数据是否已签名。还有减法。减法后,除结果外,还有一些标志位,如是否有借位、是否为0等,减法后,根的跳转指令不同,数据的含义也不同。例如,ja用于表示不一致的数字,jg用于表示一致的数字。1-(-1)是判断哪个大于-1。如果你用jg,它大于-1,如果你用ja,它大于-1。那么应该使用什么样的说明呢?你不能总是写汇编。因此有一种类型定义的高级语言,比如c语言,可以清楚地定义变量是否有符号。然后编译器将知道编译时要使用哪条指令。
所有以%开头的字符都是输出控制器。主要有%d、%u、%ld和%p。
1。%d,表示按十进制整数数据的实际长度输出。
2.%u输出一个无符号整数。输出无符号整数时,也可以使用%d。在这种情况下,您将无符号整数转换为有符号整数并输出它。
3.%ld,表示输出长整数数据。
4.%p输出变量的内存地址。1八进制在c语言中,八进制的输出格式是%o,八进制是一个以0开头的数字,0后面的数字小于8,最大值是7。2十六进制十六进制输出格式是%x,十六进制数是0x12,这个0也是零。十六进制的特别之处在于1-9是纯数字,10-15用a、b、c、d、e和f表示。%d中的d不是整数,而是十进制。
它也是一个16位二进制整数,
shortintx
unsignedshortinty
有符号整数需要1位来签名,其余15位用来存储值。
无符号整数不需要符号位,16位用于存储值。
因此它们有不同的值范围。
有符号整数,正数由原代码表示,负数由补码表示,最小负数(最大绝对值)为1000万(十六进制0x8000),最大正数0111111111(十六进制0x7fff)。
无符号数由原代码表示,最小0,最大值111111111111(十六进制0xffff)。
用c语言打印值:
printf(“i%d%dn”,(short)0x8000,(short)0x7fff)
printf(“u%u”,(unsignedshort)0xffff)
i:-3276832767
u:65535
默认情况下,ab返回无符号数,如果是有符号数,intcc=ab,当然是c0,因为b=-6是有符号的,这超出了无符号数的范围。存储在内存中的十六进制补码的形式是fffa,即65530>0。