C语言中的负数是怎么表示的
发布时间:2025-05-17 08:05:29 发布人:远客网络
一、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语言除法运算符“/”和求余运算符“%”
除法运算符“/”。二元运算符,具有左结合性。参与运算的量均为整型时,结果为整型,舍去小数。如果运算量中有一个为实型,结果为双精度实型。
求余运算符“%”,二元运算符,具有左结合性。参与运算的量均为整型。求余运算的结果等于两个数相除后的余数。