精华内容
下载资源
问答
  • C语言长整型数运算C语言长整型数运算C语言长整型数运算C语言长整型数运算
  • c语言 长整型的输出

    千次阅读 2019-07-31 12:32:52
    一个问题:基本整型数据的最大范围是-2^16 ~ 2^16,所以在这里要用long long int类型来存数据。 代码: #include int main() { int i = 0; int n = 0; long long int a[20] = {0}; long long int Sn = 0; ...

    题目描述:
    求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。

    输入:
    n

    输出:
    Sn的值

    样例输入:
    5
    样例输出:
    153
    分析:

        这道题目思路并不复杂,首先用for循环求出每项的值,同时把各项加起来求出Sn,然后输出Sn。但是要注意
       一个问题:基本整型数据的最大范围是-2^16 ~ 2^16,所以在这里要用long long int类型来存数据。
    

    代码:

    #include<stdio.h>
    int main()
    {
        int i = 0;
        int n = 0;
        long long int a[20] = {0};
        long long int Sn = 0;
        scanf("%d",&n);
        a[0] = 1;
        for(i = 1;i <= n;i++)
        {
            a[i] = a[i-1] * i;
            Sn = Sn + a[i];
        }
        printf("%lld\n",Sn);
        return 0;
    }
    
    
    展开全文
  • C语言长整型相乘

    千次阅读 2017-09-24 21:47:12
    思路用数组strA,strB存储数字,将两个大数对应位置(i、j)上的数相乘,乘积直接放在数组strC的第(i+j)位,待所有位置上的数都相乘后,对strC进行进位。#include #include using namespace std;...

    思路

    用数组strA,strB存储数字,将两个大数对应位置(i、j)上的数相乘,乘积直接放在数组strC的第(i+j)位,待所有位置上的数都相乘后,对strC进行进位。

    #include<iostream>
    #include<cstring>
    using namespace std;
    
    int main(){
        int strA[4000],strB[4000],strC[4000]={0}; 
        int lenA=0,lenB=0,lenC=0,i,j,t=0,flagA=1,flagB=1;
        char str[40000];
    
        //输入第一个数 
        cout<<"输入第一个数,回车结束输入:"; 
        gets(str);
        for(i=0;i<strlen(str);i++){
            if(str[i]=='-'){
                flagA=-1;
                continue;
            }
            strA[t++]=str[i]-'0';
        }
        lenA=t;
        //输入第二个数 
        cout<<"输入第二个数,回车结束输入:"; 
        gets(str);
        for(i=0,t=0;i<strlen(str);i++){
            if(str[i]=='-'){
                flagB=-1;
                continue;
            }
            strB[t++]=str[i]-'0';
        }
        lenB=t;
        //两数相乘 
        for(int i=lenA-1,p=0;i>=0;i--,p++){
            for(int j=lenB-1,k=0;j>=0;j--,k++){
                strC[k+p]+=strA[i]*strB[j];
                lenC=k+p+1;
            }
        }
        //进位 
        int newLen=0;
        for(int i=0;i<lenC;i++){
            if(strC[i]>=10){
                int n=strC[i];
                strC[i]=n%10;
                n=n/10;
                newLen=i;
                int t=i+1;
                while(n){
                    strC[t]+=n%10;
                    n=n/10;
                    newLen=t;
                    t++;
                } 
            }
            if(newLen<i) newLen=i;
        }
        cout<<"乘积:"; 
        if(strC[newLen]==0){
            cout<<"0"<<endl;
            return 0;
        }
        //判断符号 
        if(flagA*flagB==-1) cout<<"-";
        //输出乘积 
        for(int i=newLen;i>=0;i--){ 
            cout<<strC[i];
        }
        return 0;
    }
    展开全文
  • C语言中长整型的输出格式是否必须是%ld? 我在程序中用%d之后 输出的C值也没有问题 int a=10; long b=21; float c=3.8; printf ("a=%d,b=%d,c=%3.1f\n",a,b,c); 这是怎么回事?
  • C语言的整型和长整型的字节长

    千次阅读 2016-02-25 23:18:07
    语言并没有规定类型的长度,但是有一些规则,比如:char不论在什么时候都是一个字节(即8个bit),int永远比char,long不会小于int的长度。 Linux下 %d 有符号32位整数 %lld 有...
    16位系统:long是4字节,int是2字节
    32位系统:long是4字节,int是4字节
    64位系统:long是4字节,int是4字节

        指针长度默认是unsigned long。

        int的长度,是由硬件和系统共同决定的。比如当年的dos是运行在16位CPU下的,他的int就是两个字节,win95是运行在32位CPU下的,但是win95还是16位的系统设计,所以他的int还是2个字节,到2000,NT,XP,cpu是32位的,windows也支持32位,所以他的int就是32位的了。语言并没有规定类型的长度,但是有一些规则,比如:char不论在什么时候都是一个字节(即8个bit),int永远比char长,long不会小于int的长度。

    %d 有符号32位整数

    %lld 有符号64位整数       %I64d (MinGW和VC 6)

    %llx有符号64位16进制整数

    %u 无符号32位整数


    展开全文
  • C语言整型溢出问题 整数溢出 int、long int 、long long int 占用字节疑问 《C和指针》中写过:long与int:标准只规定long不小于int的长度,int不小于short的长度。 double与int类型的存储机制不同,long int...

    溢出和取值范围

    C语言的整型溢出问题
    整数溢出
    int、long int 、long long int 占用字节疑问

    《C和指针》中写过:long与int:标准只规定long不小于int的长度,int不小于short的长度。

    double与int类型的存储机制不同,long int的8个字节全部都是数据位,而double是以尾数,底数,指数的形式表示的,类似科学计数法,因此double比int能表示的数据范围更广。

    long long在win32中是确实存在,长度为8个字节;定义为LONG64。
    为什么会出现long int呢?在win32现在系统中,长度为4;在历史上,或者其他某些系统中,int长度为2,是short int。
    即便是long long,在TI的有款平台中,长度为5也就是说,每种类型长度,需要sizeof才知道,如果可能,最好用union看看里面的数据,可以消除一些类型的假象长度。

    类型名称        字节数    取值范围
    signed char       1        -128~+127
    short int         2        -32768~+32767
    int               4        -2147483648~+2147483647
    long int          4        -2147483648~+2141483647
    long long long int  8      -9223372036854775808~+9223372036854775807
    
    unsigned int  (unsigned long)
    4字节8位可表达位数:2^32=42 9496 7296  
    范围:0 ~ 42 9496 7295 (42*10^8)  
     
    int  (long)
    4字节8位可表达位数:2^32=42 9496 7296  
    范围:-21 4748 3648 ~ 21 4748 3647 (21*10^8)
     
    long long (__int64)
    8字节8位可表达位数:2^64=1844 6744 0737 0960 0000  
    范围:-922 3372 0368 5477 5808 ~ 922 3372 0368 5477 5807 (922*10^16)
    
    unsigned long (unsigned __int64)
    8字节8位可表达位数:2^64=1844 6744 0737 0960 0000  
    范围:0 ~ 1844 6744 0737 0955 1615 (1844*10^16)
    
    

    最大值、最小值

    在#include<climits>存有各个类型的最大值和最小值
    CHAR_MIN       char的最小值
    SCHAR_MAX      signed char 最大值
    SCHAR_MIN       signed char 最小值
    UCHAR_MAX      unsigned char 最大值
    SHRT_MAX       short 最大值
    SHRT_MIN       short 最小值
    USHRT_MAX      unsigned short 最大值
    INT_MAX       int 最大值
    INT_MIN        int 最小值
    UINT_MAX       unsigned int 最大值
    UINT_MIN        unsigned int 最小值
    LONG_MAX      long最大值
    LONG_MIN       long最小值
    ULONG_MAX      unsigned long 最大值
    FLT_MANT_DIG    float 类型的尾数
    FLT_DIG         float 类型的最少有效数字位数
    FLT_MIN_10_EXP   带有全部有效数的float类型的负指数的最小值(以10为底)
    FLT_MAX_10_EXP    float类型的正指数的最大值(以10为底)
    FLT_MIN        保留全部精度的float类型正数最小值
    FLT_MAX        float类型正数最大值
    

    自己推算:

    以int类型为例:
    int为4字节32位,其中首位用0表示正数,用1表示为负数。因此对于
    最大正数可以表示为:0x7fff ffff(7的二进制为0111,f二进制为1111)
    最大负数(-1)可以表示为:0xffff ffff
    最小负数可以表示为:0x8000 0000(8的二进制为1000)

    负数为正数的源码取反码再取补码,过程如下:
    1、-1的原码:10000000 00000000 00000000 00000001
    2、得反码: 11111111 11111111 11111111 11111110
    3、得补码: 11111111 11111111 11111111 11111111

    最小负数没有并没有原码和反码表示,最高位为1,其余位为0。就是最小负数。
    原码, 反码, 补码 详解

    该如何选用类型

    在这里插入图片描述

    展开全文
  • 假如都是整型int类型。 1的原码:00000000 00000000 00000000 00000001 1的反码:00000000 00000000 00000000 00000001 1的补码:00000000 00000000 00000000 00000001 -1的原码:10000000 00000000 00000000 ...
  • C语言——整型变量

    千次阅读 2019-06-30 12:49:12
    标题整型变量的分类: (注意:占几个字节跟操作...3)长整型:long int或long,在内存中占4个内存 4)无符号型:为unsigned 在编译器中输出变量类型所占字节数: 说明一下,这个程序我原本以为会运行得很顺利,结...
  • 嗨喽C语言!整型常量

    2019-02-03 21:43:31
    1.三种表示形式 整型常量即整常数,在C语言中可用三种形式表示: (1)十进制。例如10、36。 (2)八进制(以数字0开头)。...对超出基本整型值域的整型常量,可使用长整型常量表示,其取值范围可达-2...
  • C语言整型提升

    2019-11-14 22:20:24
    什么叫整型提升? C的整形算术运算总是至少以缺省整形类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数再使用之前被转转为普通整型,这种转换称为整型提升。 整型提升的意义: 表达式的整型运算...
  • C语言整型数据类型

    千次阅读 2017-03-19 19:19:52
    整型数据就是整数。1、整型数据的分类整型数据的一般分类如下:(以下说明的在内存中所占的字节数均是在vs2012这个开发工具里面的)基本型:类型说明符为int,在...长长整型:类型说明符为long long int或long long...
  • C语言中无符号长整型数的输入输出格式是什么?整数变量的分类:basic integer:int short integer:short int long int将修饰符unsigned添加到上述三个类别中,以指定“unsigned number”。如果添加了修饰语signed,则...
  • 嗨喽C语言整型变量

    2019-02-03 21:42:04
    1.分类 根据占用内存字节数的不同,整型变量又分为4类: ...无符号型又分为无符号基本整型(unsigned [int])、无符号短整型(unsigned short)和无符号长整型(unsigned long)三种,只能用来存储...
  • C语言——整型数据在内存中的存储及大小端字节序介绍c语言数据类型基本的内置类型类型的意义类型的归类整型数据在内存中的存储大小端字节序介绍 ...long //长整型 long long //更长的整形 float //单...
  • C语言整型的定义

    万次阅读 2016-03-21 15:38:57
    使用C语言时,用sizeof运算int,long int,long long int时,得到的结果不尽相同。那么这些类型长度与什么有关?与机器?与编译器(语言实现)?还是操作系统? 我查阅了一些资料,将之总结下来,希望能有一些参考...
  • 时间没写C程序了,现在来实现一个整型字符串相乘的小功能。看代码,欢迎拍砖。 #include <string.h> #include <sys/malloc.h> #include <stdio.h> #include <stdlib.h> void reverse...
  • c语言整型常量和实型常量的写法

    千次阅读 2020-06-12 09:43:38
    十进制:平常的写法,不用加后缀,后缀 ...长整型常量:后面加字母L long num = 10L; 无符号整型常量:末尾加U unsigned num = 10U; 无符号长整型常量:后缀为LU unsigned long num = 10LU; ...
  • C语言整型在计算机中的存储

    千次阅读 2016-12-04 11:23:24
    字面值后面加上L(l)表示long长整型  2.字面值后面加上U(u)表示usigned整型值  3.十进制123 ...  4.八进制,以0开头,如0123,0754 ...  5.十六进制,以0x开头,如0xF32 ... 二 .整型的分类和表示范围  char型,...
  • C语言整型溢出问题 整数溢出 :https://blog.csdn.net/njsssch/article/details/6543821 int、long int 、long long int 占用字节疑问:http://bbs.bccn.net/thread-364170-1-1.html 《C和指针》中写过:long与int...
  • C语言基础 整型、字符型和浮点型

    千次阅读 2011-01-05 21:29:00
    整型数据类型表 序号类型名称说明字节数取值范围1signed char有符号的单字节整数类型1-128~+1272short int短整型2-32768~+327673int整型4-2147438648~+21474386474long int长整型4-2147438648~+21474386475long long...
  • 假如int和float类型都是32位,你觉得那种类型所能容纳的值精度更大一些?
  • C语言中数据类型的长度,有无符号等常常是机器相关,编译器...本程序用宏实现了标准C语言整型数据的机器无关,编译器无关。/* Int.h */#ifndef INT_H#define INT_H#include #if 0XFF == UCHAR_MAXtypedef signed char
  • 下面说的有点多,配点图,都可以写篇文章了,希望楼主不要辜负我的一片心意,能够看完。我来说说Java的。首先java在整数上默认为int类型,如果是long,需要在后面加l或L,比如 0xffffffffL(二进制是32个1),其次,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,788
精华内容 1,115
关键字:

c语言长整型

c语言 订阅