如题所述
追问
请问这是怎么得到的?要编程吗?
0X是什么意思呀
追答你需要编程吗?你是提问者呀!题目中没有要求编程啊!我已经在注里说明了:32位的二进制在表格中放不下,用十六进制表示的,0x只是说后面的是十六进制数,0x本身没有数据意义。比如0x00000019是说00000019这个数是十六进制数。0x00000019换算成二进制是00000000 00000000 00000000 00011001,这么长放不到表格中去!我再说一遍,按题意,我理解只写二进制就行了,但相同的二进制在不同的类型下解释成十进制可能是不同的数,所以红色的是供参考的十进制数。
追问int16位怎么转成signed char8位?要加符号吗?看右边八位吗?
追答int16位怎么转成signed char8位?要加符号吗?看右边八位吗?
答:长字节数赋给短字节数时,自动从右边截到短字节数那么长的二进制位。编译时会有精度损失提示。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-03-14
举个例子(首先要知道转换为二进制:25=11001,-2=-10,32769=2∧15(2的15次方)+1=1000000000000001(14个0)
int16位:
0000000000011001(前面有11个0,0的作用是补不足位),
-0000000000000010(13个0,负号在左端,占一位),
1000000000000001(照搬)
unsigned(无符号,没有符号占位) int(16位)
0000000000011001(一样),
00000000000000010(14个0,负号位用0替换,多出个0)
1000000000000001(一样)
signed(有符号)char(8位)(则只截取【左边】的8位,可从16、32位的结果中截取,一定要注意的是对应,signed的就截取signed的,unsigned的就截取unsigned的)
00000000(8个0),
-0000000(7个0,有符号‘-’占位),
10000000(7个0)
unsigned (无符号)char(8位)(只截取【左边】的8位)
00000000(8个0),
00000000(8个0),
10000000(7个0)。
剩下的,自己去想想吧追问
int16位:
0000000000011001(前面有11个0,0的作用是补不足位),
-0000000000000010(13个0,负号在左端,占一位),
1000000000000001(照搬)
unsigned(无符号,没有符号占位) int(16位)
0000000000011001(一样),
00000000000000010(14个0,负号位用0替换,多出个0)
1000000000000001(一样)
signed(有符号)char(8位)(则只截取【左边】的8位,可从16、32位的结果中截取,一定要注意的是对应,signed的就截取signed的,unsigned的就截取unsigned的)
00000000(8个0),
-0000000(7个0,有符号‘-’占位),
10000000(7个0)
unsigned (无符号)char(8位)(只截取【左边】的8位)
00000000(8个0),
00000000(8个0),
10000000(7个0)。
剩下的,自己去想想吧追问
请问这是怎么得到的?要编程吗?
追答在计算机内是这么存的,何来的编程?
追问哦哦 就是按规则计算就可以了是吗?
追答你的意思是写出可以输出存储形式的代码?很抱歉,目前我没这么厉害,我最多能让它以十进制或者其它的进制的形式显示(显示形式),但与内存中的存储形式是不同,因为它不一定有那么多位
追问signed char和unsinged char符号位在哪里?
本回答被网友采纳