在C语言中一个整型常量后面加上一个字符u,则认为该数为unsigned int 型 如12345u表示无符号整数12345,如果写成-12345u 则先将-12345转换成补码53191 然后按照无符号数存储 后面的转码怎么转的?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 19:23:26
在C语言中一个整型常量后面加上一个字符u,则认为该数为unsigned int 型 如12345u表示无符号整数12345,如果写成-12345u 则先将-12345转换成补码53191 然后按照无符号数存储 后面的转码怎么转的?
xN@_{@ TORԪb{% !@$D(P)5xǍ‚Fh̹|'ח|mݴ<~%:t?:9Bs Kjl Υto0Jm}N}h6 d0s [/{XE$9?Qᖀ:ΑLԔsZݯn/Ei{H|Cs }!˙w/3o7CA3uwCۈ=6U\{<-ׯ뫋naTKbT&vrd!4(5 /ke&m;/JǬ.յ͍A^J~ܝj60و0#}pW Ĥ68 ްtn I $$@h N͓FS p!QX#5豜AmxL !nJK4W 1JptY|PVc~</`+JMN)H7x ׄ)8, j K1Y◀Y ~L=%K#sTq-w K4Mwrb(̱JƳ,|ʰOp.t}GBkX' 'bgə

在C语言中一个整型常量后面加上一个字符u,则认为该数为unsigned int 型 如12345u表示无符号整数12345,如果写成-12345u 则先将-12345转换成补码53191 然后按照无符号数存储 后面的转码怎么转的?
在C语言中一个整型常量后面加上一个字符u,则认为该数为unsigned int 型 如12345u表示无符号整数12345,
如果写成-12345u 则先将-12345转换成补码53191 然后按照无符号数存储 后面的转码怎么转的?

在C语言中一个整型常量后面加上一个字符u,则认为该数为unsigned int 型 如12345u表示无符号整数12345,如果写成-12345u 则先将-12345转换成补码53191 然后按照无符号数存储 后面的转码怎么转的?
计算机中存的数全是按补码保存的,所以解释问题,需先解释补码的意义:
一、一个int类型数据在计算机中占四个字节(32bits),有符号数第一位是符号位,0表示正数,1表示负数.无符号数是将符号位也算作数值来计算.
二、计算机中有原码、反码、补码的概念,其定义为:
原码:第一位为符号位,其余位为数的二进制 如:+10=0 .1010B ,-10=1.1010B(.表示多个0,总共32bits)
反码:正数反码同原码,负数的反码为:符号位不变,其余位按位取反,即:0变1,1变0,如:
+10(反)==0 .1010B -10(反)=1111.0101B
补码:正数补码同原码,负数的补码为:反码+1,如:
+10(补)==0 .1010B -10(补)=1111.0110B
三、-12345的存储
-12345原=1000 0000 0000 0000 0011 0000 0011 1001B
-12345反=1111 1111 1111 1111 1100 1111 1100 0110B
-12345补=1111 1111 1111 1111 1100 1111 1100 0111B
四、解读-12345u
1111 1111 1111 1111 1100 1111 1100 0111B按无符号数解读为:4294954951