1. 首页 > 科技

C++赋值类型转换?(C语言中赋值时不同数据类型的转换)

C++赋值类型转换?(C语言中赋值时不同数据类型的转换)

C语言中赋值时不同数据类型的转换

你说的int应该是16位,2字节。

char类型只占用了一个字节,8位。所以转化的时候只要取int型16位的低8位就够了。这个和变量的内存存储方式有关系,你要弄懂变量怎么在内存中放置和存储的就很容易理解了。

C语言:赋值过程中的类型转换

你用的什么编译器?上面代码我用VS2005编译是正确输出的:5.00000

是不是赋值的那一行

n=1.0,s=5;有问题,你分成两行写试试,或者是编译器有什么别的问题

c++中赋值时类型的转换是怎么换的

数值在计算机内是以补码的形式保存的。

short int占2字节(16位),-1的补码是1111,1111,1111,1111。unsigned long和long都是4字节(32位),当把长度小的类型赋给长度大的类型时,会把原来的值放到低位,然后在高位用原来的值的最高位来填充,-1的最高位是1,把它赋给b后b的值就是1111,1111,1111,1111,1111,1111,1111,1111。

对于unsigned long,即无符号长整型(只包含非负数,所有32位都被解释成数值),1111,1111,1111,1111,1111,1111,1111,1111就是4294967295。

而对于long,即有符号长整型(最高位被当成符号位,0表示非负数,1表示负数),1111,1111,1111,1111,1111,1111,1111,1111就是-1。

c语言中赋值运算的类型转换的规则是啥

小类型转化为大类型的可以自动转化,大类型转化为小类型的需要强制性转化,且可能会丢失精度