前言:
此时咱们对“c语言不换行符号”都比较关怀,各位老铁们都需要学习一些“c语言不换行符号”的相关资讯。那么小编也在网上汇集了一些有关“c语言不换行符号””的相关文章,希望兄弟们能喜欢,我们一起来了解一下吧!我们学习了有符号和无符号数,可以知道,在一个字节中存放了8位的数据,例如1111 1111这样的8位二进制数据,就有:
(1) 如果把这8位二进制数据当作“有符号”数看待,那么,最高位是符号位,其余7位是数值位;
(2) 如果把这8位二进制数据当作“无符号”数看待,那么,没有符号位,8位数据都是数值位;
可以看到,同一个二进制数据,当中有符号和无符号数看待的时候,它们表示的结果是不一样的。
在C语言中,提供了unsigned这个关键字来表示无符号数。例如:
unsigned char x;
就是定义了x这个变量是无符号类型,所以它表示的数值没有符号位。例如存放1111 1111数据,因为无符号数没有符号位,全部8位数据是数值位,所以表示255这个数值。表示的最小数据就是0000 0000,既0 数值。如下是一个测试的例子。
程序运行的结果如下:
可以看到,对于255这个整数,其二进制表示为1111 1111,那么,就有:
(1) 把255赋给a1变量,当作有符号数看待,所以,符号位是1,表示负数,数值位是111 1111,那么,要表示为十进制,就是数值位取反,得到000 0000,然后,加1,得到000 0001,所以,二进制1111 1111表示为有符号数是-1。所以与输出的a1变量值是-1一致。
(2) 把255赋给a2变量,当作无符号数看待,所以,8位二进制数据1111 1111全部存储到a2变量中当作数值位,所以,a2变量输出是255。
对于a3变量的操作,我们是把一个负数赋值给无符号数a3,那么,由于-1这个数值其在1个字节中表示的二进制数为1111 1111,所以,就相当于把1111 1111数值赋给a3变量,那么,a3变量中就有1111 1111这样的数据,与a2变量存储的数据是一样的。所以,输出的数值与a2变量一样。
对于char、short、int、long 类型,可以使用unsigned关键字来修饰,定义无符号类型的数据。但是,对于 float、double类型的数据,由于是浮点数,所以,不可以使用unsigned关键字来修饰。
标签: #c语言不换行符号 #c语言取整符号怎么打出来 #c语言取符号 #java无符号int #c语言负数转换成无符号数