您当前的位置:首页 > 互联网教程

C语言中的负数是怎么表示的

发布时间:2025-05-17 08:05:29    发布人:远客网络

C语言中的负数是怎么表示的

一、C语言中的负数是怎么表示的

共有32二进制位,1位符号位+8位阶码(小数点要移动的位数)+23位尾数:

最高位是符号位,1表示负数,0表示正数。这里-2.5,所以取1。

接着是8位阶码,阶码用移码表示,最高位为符号,0表负、1表正;单精度要在原值上+127实现,即加01111111。

把尾数原码接着写在后面,无限小数写够23位即可。注意原码都要化成以1打头(就是小数点移到第一个有效1之后,恢复时小数点应该向哪个方向移几位由阶码表示),并把小数点前面的1省写即可。

求尾数:2.5的二进制原码是10.1,变成1.01并省去小数点前面的1为01,01就是尾数。

求阶码:由1.01恢复为10.1小数点要向右移一位,所以阶码符号为1(正)、移值为0000001;0000001+1111111=10000000。这就是-2.5的阶码。

求全码:1+10000000+01-->11000000 00100000 00000000 00000000——后面的0是补上的,因为小数点后的0实际无数学意义,但C中要补齐32位。最后11000000 00100000 00000000 00000000这个数就是-2.5的格式化表达。

二、C语言中的负数怎么表达

1、C/C++规定,16进制数必须以 0x开头。比如 0x1表示一个16进制数,而1则表示一个十进制,0xff,0xFF,0X102A,等等.其中的x不用区分大小写。

C/C++中,10进制数有正负之分。比如12表示正12,而-12表示负12。但8进制和16进制只能表达无符号的正整数,如果在代码中写-0xF2,C/C++并不把它当成一个负数。

int a= 0x100F;//用一个十六进制数给变量a赋值

int b= 0x70+ a;//用一个十六进制数+变量a的值给变量b赋值

三、C语言中负数是怎么计算的啊

C语言计算负数取余:符号内的被除数决定,就是计算式中的-7,7,-7决定:比如-7%5=-2;

任何一个整数n都可以表示成n=k*q+r其中0<=|r|<|q|这里的r就是n除以q的余数,即r==n%q例如:-9=(-2)*4+(-1)则-9除以4的余数为-1。

求模:基本意义和求余相同,不过要求a%b中的b不是负数。

C语言除法运算符“/”和求余运算符“%”

除法运算符“/”。二元运算符,具有左结合性。参与运算的量均为整型时,结果为整型,舍去小数。如果运算量中有一个为实型,结果为双精度实型。

求余运算符“%”,二元运算符,具有左结合性。参与运算的量均为整型。求余运算的结果等于两个数相除后的余数。