当前位置:首页 » 编程语言 » 负号c语言

负号c语言

发布时间: 2022-08-12 05:47:33

‘壹’ c语言如何表示正负值问题

c语言有两种数据类型,一种是整型,一种是浮点型 ,整型类型一般用的原码表示,浮点类型一般用的IEEE754标准进行编码。

整型数中原码表示正负数,取最高位为符号位,以8位二进制数来表示1和-1。1的二进制为
0 000 0001 //最高位为符号位,0表示正数,1表示负数
1 000 0001 //这个表示-1

IEEE754浮点数编码,使用的格式类似于 (-1)^s * M* 2^E,其中s是符号位,M是有效位数,E指的是指数,s符号位占1位,如果是0,则(-1)的0次方为1,表示是一个正数,如果s位是-1,则表示是一个负数。

‘贰’ c 语言中函数要返回负号应该怎么写

一般来说返回-1就行了,不需要返回什么负号,因为用-1乘以你的数字就相当于取负值了。

‘叁’ c语言中负数如何表示

c语言中负数表示方法就是在数前加负号“-”,比如:
-5,-10000,等
一个变量赋值为负数也是如此,比如:
x=-1000;

‘肆’ C语言中负数的补码怎么求

正数,本身就是补码。

负数,就用它的正数,减一取反,即可得到补码。

如,已知:+9 的二进制是:00001001。

下面求-9补码:

先减一:00001001-1=00001000;

再取反:11110111。

所以有:-9补码=11110111。

这不就完了吗!

简不简单?意不意外?

原码反码符号位,讨论这些垃圾干嘛?

这些垃圾,都是用来骗吃骗喝的!

‘伍’ 负号在c语言中是一次性的吗

你好!
结合性,按计算顺序来
先i++再-
-(负号)表示一元运算符,自右向左
-(减号)表示二元运算符,自左向右
printf("%d\n",-i++);
打印结果
-8
printf("%d\n",i--);
打印结果9
仅代表个人观点,不喜勿喷,谢谢。

‘陆’ C语言中负号占几个字符

表达式中的负号?还是一个数的负号?

表达式中当然占一个字符。

一个数的符号,占这个数的最高一位。

比如int16 ,最高位是符号位,低15位是其数值;
int32,b31是符号位,b30,b29,....b0是其数值

‘柒’ 谁能帮忙整理一下在C语言中负号都有什么用

代表负数,比如-3
代表减号,比如3-1
代表左对齐,比如printf("%-5d", i);就是占5格左对齐。

‘捌’ 在c语言中怎么表示负数。

第一位符号位1为负,0为正。 正数的补码和2进制原码是一样的。

负数的补码:

1、先取绝对值|x| ;

2、对|X|+1 ;

3、对|X|+1 取反,就得到它的补码了 。

计算机中存放整型数据都是按补码的形式存放的。

(8)负号c语言扩展阅读:

有符号数的表示方法是由硬件决定,而不是由C决定的。有三种表示方法:

1、二进制原码

0000 0001 表示 1

1000 0001 表示 -1

这个方法有个缺点是有两个零: +0 和 -0。这会引起混淆,而且用两个位组合来表示一个值也有些浪费。

2、二进制补码(最普遍的系统)

区别在于 singned 和 unsigned:

1)如果是无符号字节, 1000 0000 该组合为 128

2)如果是有符号字节, 1000 0000 该组合为 -128

第一种表示数的范围是 0 ~ 255;

第二种表示数的范围是 -128 ~ +127,对于一个二进制补码数取负数,最简单的方法就是取反、加 1。

3、二进制反码

通过反转位组合中的每一位以形成一个数的负数,例如:

0000 0001 表示 1

1111 1110 表示 -1

这种方式也有一个 -0:1111 1111。其范围是 -127 ~ +127。

‘玖’ C语言 负号问题

只能是在程序里判断‘-’这个字符。你需要能够判断出‘-’是一个减号还是一个负号。

比较简单的方法是,输入计算式时你规定好格式,负数一律用()括起来。这样比较容易判断是不是负数。当然你也可以定义其它的格式。

如果不规定格式的话,判断方法稍微麻烦一点,你要判断‘-’前面是什么,如果是数字,那么 ‘-’为减号,如果是‘)’,那么‘-’为减号,如果是‘+-*/’号,那么‘-’为负号。如果什么也没有,那么表明是起始数字,那么‘-’为负号。等等,需要考虑周全。
=======下面是一个例子==============
#include "stdafx.h"
#include<stdio.h>
#include<malloc.h>
#include<math.h>
#define maxlen 100

typedef struct node{
char ch;
int data;
struct node *next;
}LinkList;//保存表达式的链表

int func()
{
LinkList *ta,*tb,*tc,*td;

ta = La;
tc = Lb;
for(int n=0;n < i;n++)
{
ta=ta->next;
}
tb = ta;
for(n=0; n < Len; n++)
{
tb=tb->next;
}
ta->next = tb;
for(n=0; n < j; n++)
{
tc=tc->next;
}
td = tc->next;
tc->next =
}

typedef struct{
char stack[maxlen];
int top;
}Stack1;

typedef struct{
int stack[maxlen];
int top;
}Stack2;

int In(char c){
if((c=='+')||(c=='-')||(c=='*')||(c=='/')||(c=='#')||(c=='(')||(c==')')||(c=='A')||(c=='S'))
return 1;
else
return 0;
}

void InitStack1(Stack1 *S){
S->top=-1;
}

void InitStack2(Stack2 *S){
S->top=-1;
}

void Push1(Stack1 *S,char ch){
S->top++;
S->stack[S->top]=ch;
}

void Push2(Stack2 *S,int ch){
S->top++;
S->stack[S->top]=ch;
}

char Precede(char ch1,char ch2){//比较两个运算符的优先级
char ch;//当ch为<时表示ch1的优先级要小于ch2,反之同理
switch(ch1){
case '+':if((ch2=='*')||(ch2=='/')||(ch2=='(')) ch='<';else ch='>';break;
case '-':if((ch2=='*')||(ch2=='/')||(ch2=='(')) ch='<';else ch='>';break;
case '*':if((ch2=='(')) ch='<';else ch='>';break;
case '/':if((ch2=='(')) ch='<';else ch='>';break;
case '#':if(ch2=='#') ch='=';else ch='<';break;
case '(':if(ch2==')') ch='=';else ch='<';break;

}
return ch;
}

void Pop1(Stack1 *S,char *p){
*p=S->stack[S->top];
S->top--;
}

void Pop2(Stack2 *S,int *p){
*p=S->stack[S->top];
S->top--;
}

char GetTop1(Stack1 *S){
return S->stack[S->top];
}

int GetTop2(Stack2 *S){
return S->stack[S->top];
}

void print1(Stack1 *s){
printf("运算符栈: ");
int h=s->top;
while(h!=-1){
printf("%c ",s->stack[h]);
h--;
}
printf("\n");
}

void print2(Stack2 *s){
printf("数字符栈: ");
int h=s->top;
while(h!=-1){
printf("%c ",s->stack[h]);
h--;
}
printf("\n");
}

int Operate(int a,char theta,int b){//对a和b进行运算
int s;
switch(theta){
case '+':s=a+b;break;
case '-':s=a-b;break;
case '*':s=a*b;break;
case '/':s=a/b;break;
}
return s;
}

LinkList *CreatList(){
LinkList *H,*s,*r;
H=(LinkList*)malloc(sizeof(LinkList));
H->next=NULL;
r=H;
char c;
c=getchar();
while(c!='#'){
s=(LinkList*)malloc(sizeof(LinkList));
s->ch=c;s->next=NULL;
r->next=s;r=s;
c=getchar();
}
s=(LinkList*)malloc(sizeof(LinkList));
s->ch=c;s->next=NULL;
r->next=s;r=s;
return H;
}

LinkList *Change(LinkList *H){
LinkList *p,*pre;p=H->next;pre=H;
while(p!=NULL){
if(In(p->ch)){p=p->next;pre=pre->next;}
else{ //将字符转化成数字
int m=0,n;
while(!In(p->ch)){
n=p->ch-'0';
m=10*m+n;
LinkList *u=p;
p=p->next;
if(!In(p->ch)){ pre->next=p;free(u); }
else{ u->data=m;u->ch='@';pre=pre->next; }//@标志此节点内的符号为数字
}
}
}
return H;
}
LinkList *jisuan(LinkList *H){//对链表中的数据进行初步的计算
LinkList *p,*U,*pre;
p=H->next;pre=H;int a;
while(p!=NULL){
if(p->ch!='A'&&p->ch!='S'){
pre=pre->next;
p=p->next;
}
else{
if(p->ch=='A')
a=fabs(p->next->data);
else
a=sqrt(p->next->data);
p->next->data=a;
U=p;
p=U->next;
pre->next=p;
free(U);
}
}
return H;
}

int main(int argc, char* argv[])
{
printf("*******************************************************************************");
printf("\n");
printf(" 欢迎使用模拟计算器程序\n");
printf("*******************************************************************************");
Stack1 OPTR1,*OPTR=&OPTR1;
Stack2 OPTR2,*OPND=&OPTR2;
InitStack1(OPTR);
Push1(OPTR,'#');//将‘#’压入OPTR栈中
InitStack2(OPND);
char c,x,theta;
int a,b,s;
printf("请输入表达式,以#结束:");
LinkList *H,*p,*q;
H=CreatList();
H=Change(H);
H=jisuan(H);
p=H->next;
c=p->ch;
while((c!='#')||(GetTop1(OPTR)!='#')){//#同时是表达式的截止符
if(c=='@'){
s=p->data;
Push2(OPND,s);
p=p->next;
c=p->ch;
}
else
switch(Precede(GetTop1(OPTR),c)){
case '<':Push1(OPTR,c);p=p->next;c=p->ch; break;
case '=':Pop1(OPTR,&x); p=p->next;c=p->ch; break;
case '>':Pop1(OPTR,&theta); Pop2(OPND,&b); Pop2(OPND,&a);
Push2(OPND,Operate(a,theta,b));break;
//Operate之后,对C继续判断,所以不用getchar()
}

}
s=GetTop2(OPND);
printf("结果为:");
printf("%d\n",s);

return 0;
}

热点内容
为什么工作站配置不好 发布:2025-01-21 02:53:38 浏览:445
我的世界服务器怕被破坏怎么办 发布:2025-01-21 02:33:15 浏览:932
linux下交叉编译实验 发布:2025-01-21 02:19:00 浏览:434
java培训班多少钱 发布:2025-01-21 02:17:23 浏览:335
帝豪gl哪个配置是电容屏 发布:2025-01-21 02:11:23 浏览:304
openwrt编译零基础 发布:2025-01-21 01:53:30 浏览:20
视频聊天室源码php 发布:2025-01-21 01:39:29 浏览:939
游戏脚本xp 发布:2025-01-21 01:25:48 浏览:210
cfa建模需要什么电脑配置 发布:2025-01-21 01:16:41 浏览:97
配置获取异常怎么办 发布:2025-01-21 01:16:29 浏览:642