C语言卢萍,c语言lu

dfnjsfkhak 47 0

大家好,今天小编关注到一个比较意思的话题,就是关于C语言卢萍的问题,于是小编就整理了2个相关介绍C语言卢萍的解答,让我们一起看看吧。

  1. 负数补码怎么算啊、里边老有个符号位、符号位是指的哪位啊?

负数补码怎么算啊、里边老有个符号位、符号位是指的哪位啊?

补码的定义

正数的补码等于正数的原码;

C语言卢萍,c语言lu-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

负数的补码为其源码除符号位不动,其余各位变反再加1。

比如,十进制数35和-1在8位机中的补码表示为:

x1=35, x2=-1;

C语言卢萍,c语言lu-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

因为x1>0,所以[x1]补=[x1]原=0010 0011;

因为x2<0,所以[x2]原=1000 0001;

[x2]补=1111 1110+1=1111 1111;

C语言卢萍,c语言lu-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

对于机器来说,它记录的只是补码本身:0010 0011和1111 1111,也就是说机器并不知道这段补码是有符号数还是无符号数,但是当你使用高级语言编写程序,定义了int或者unsigned int,那么就会根据相应的定义,认为这段机器码的第一位是数值位或者符号位。

负数补码怎么算啊、里边老有个符号位、符号位是指的哪位啊?

补码的定义:

正数的补码等于正数的原码;

负数的补码为其源码除符号位不动,其余各位变反再加1。

比如,十进制数35和-1在8位机中的补码表示为:

x1=35, x2=-1;

因为x1>0,所以[x1]补=[x1]原=0010 0011;

因为x2<0,所以[x2]原=1000 0001;

[x2]补=1111 1110+1=1111 1111;

对于机器来说,它记录的只是补码本身:0010 0011和1111 1111,也就是说机器并不知道这段补码是有符号数还是无符号数,但是当你使用高级语言编写程序,定义了int或者unsigned int,那么就会根据相应的定义,认为这段机器码的第一位是数值位或者符号位。

到此,以上就是小编对于C语言卢萍的问题就介绍到这了,希望介绍关于C语言卢萍的2点解答对大家有用

标签: 补码 符号 负数