精华内容
下载资源
问答
  • printf输出的不同整型数据书上的源程序是#include main(){short i;i=-2;printf("\n i: %d,%o,%x,%u\n",i,i,i,i);}书上的 答案是i:-2,177776,fffe,65534可我运行的结果是i: -2,37777777776,fffffffe,4294567294不同是...

    printf输出的不同整型数据

    书上的源程序是

    #include

    main()

    {

    short i;

    i=-2;

    printf("\n i: %d,%o,%x,%u\n",i,i,i,i);

    }

    书上的 答案是i:-2,177776,fffe,65534

    可我运行的结果是i: -2,37777777776,fffffffe,4294567294

    不同是我哪打错了还是书上出错了

    请高手指教

    搜索更多相关的解决方案:

    整型  printf  数据  输出

    ----------------解决方案--------------------------------------------------------

    书上把short型认为是2个字节

    -2 的二进制表示是 1 111 111 111 111 110

    八进制是 177776

    而你的机子上short型变量有4个字节

    -2 的二进制表示是 11 111 111 111 111 111 111 111 111 111 110

    八进制是 37777777776

    其它的进制的道理是一样的

    ----------------解决方案--------------------------------------------------------

    呵呵!咱两运行结果一样!

    ----------------解决方案--------------------------------------------------------

    short型数据也是4个字节吗?int型数据有的机子上是4个字节!

    ----------------解决方案--------------------------------------------------------

    噢```可能我在VC++6.0和TC的环境不一样吧```是这个原因嘛```?

    ----------------解决方案--------------------------------------------------------

    展开全文
  • C语言printf函数格式化打印之长整型

    万次阅读 2015-12-22 15:18:36
    有符号长整型 printf("recv %ld bytes audio data!\n", len); 无符号长整型 printf("recv %lu bytes audio data!\n", len); 跟整型相比,就是在前面加个l

    有符号长整型

        printf("recv %ld bytes audio data!\n", len);
    

    无符号长整型

        printf("recv %lu bytes audio data!\n", len);
    

    跟整型相比,就是在前面加个l

    展开全文
  • % - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。②-:有-表示左对齐输出,如省略表示右对齐输出。③0:有0表示指定空位填0,如...⑤l或h:l对整型指long型,对实型...

    4b37e23890d5817edbfd5f644cbef291.png

    % - 0 m.n l或h 格式字符

    下面对组成格式说明的各项加以说明:

    ①%:表示格式说明的起始符号,不可缺少。

    ②-:有-表示左对齐输出,如省略表示右对齐输出。

    ③0:有0表示指定空位填0,如省略表示指定空位不填。

    ④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。对数值型的来说,未指定n时,隐含的精度为n=6位。

    ⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。

    ---------------------------------------

    格式字符

    格式字符用以指定输出项的数据类型和输出格式。

    ①d格式:用来输出十进制整数。有以下几种用法:

    %d:按整型数据的实际长度输出。

    %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

    %ld:输出长整型数据。

    ②o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽度用"%mo"格式输出。

    例:

    main()

    { int a = -1;

    printf("%d, %o", a, a);

    }

    运行结果:-1,177777

    2ea1bbe65afca7979494cfd53d9be5e1.png

    秒十位计数单元为进制计数器,需要进制转换。3143表3-1 存储器的用途和特点名称简称用途特点高速缓冲存储器cache高速存取指令和数据存取速度快但存储容量小主存储器主存存放计算机运行期间的大量程序和数据存放系统程序和大型数据文件及存取速度较快存储容量不大外存储器外存存储容量大位成本低1533.1.3 存储器的技术指标1. 存储容量:指它可存储的信息的字节数或比特数通常用存储字数单元数 存储字长每单元的比特数表示。时个位计数单元电路结构仍与秒或个位计数单元相同,但是要求,整个时计数单元应为进制计数器,不是的整数倍,因此需将个位和十位计数单元合并为一个整体才能进行进制转换。

    ③x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出。

    同样也可以指定字段宽度用“%mu”格式输出。同样也可以指定字段宽度用"%mx"格式输出。这里要注意一个符号扩展的问题:比如,假如我们想打印短整数(short)-1的内存16进制表示形式,在win32平台上,一个short型占2个字节,所以我们自然希望用4个16进制数字来打印它:。

    ⑤c格式:输出一个字符。

    ⑥s格式:用来输出一个串。有几中用法

    %s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。

    (1)指定整型数据的输出宽度:%md,若实际位数小于m,则左端补空格,若大于m,则按实际位数输出。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。

    %-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。

    %m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格,注意:如果n未指定,默认为0.

    %-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。第20行输出字符量d,其中“%8c ”指定输出宽度为8故在输出字符p之前补加7个空格。

    如果是sprintf(desc, "%m.ns", sour); 如果desc空间够的话,会在%m.ns 串 的结尾自动补null字符,不同于strncpy.

    前者具有更高的空间复杂度printf格式化输出详细说明,因为原先只需要单个字节表示的ascii字符,现在也必须用多个字节来表示,显然更为耗费存储空间。数组 (array) 布尔值 (boolean) 字节 (byte) 有符号字符 (char) 无符号字符 (char byte,没有多少人用) 颜色参考值 (colorref) 坐标差(长度 shortint) double word 函数 handle(句柄) 整型 长整型 (long int) long pointer 类的成员 短整型 (short int) near pointer pointer 字符串型 以 null 做结尾的字符串型 (string with zero end) word。如dest 非null,则wcstombs() function把宽字符src转换成多字符dest,最多转换n字节。

    ⑦f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:

    %f:不指定宽度printf格式化输出详细说明,整数部分全部输出并输出6位小数。

    %m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。

    %-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。

    ⑧e格式:以指数形式输出实数。可用以下形式:

    %e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。

    %m.ne和%-m.ne:m、n和"-"字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。

    ⑨g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。

    ---------------------------------------

    34856422a283f51528c70f70b6dda18f.png

    关于printf函数的进一步说明:

    如果想输出字符"%",则应该在"格式控制"字符串中用连续两个%表示,如:

    printf("%f%%", 1.0/3);

    输出0.333333%.

    ---------------------------------------

    对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位。

    对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位。

    ------------------------------------------------------------------

    printf()函数是格式输出函数,请求printf()打印变量的指令取决与变量的类型。例如,在打印整数是使用%d符号,在打印字符是 用%c 符号。这些符号被称为转换说明。因为它们指定了如何不数据转换成可显示的形式。下列列出的是ANSI C标准printf()提供的各种转换说明。

    转换说明及作为结果的打印输出%a 浮点数、十六进制数字和p-记数法(C99)

    %A 浮点数、十六进制数字和p-记法(C99)

    %c 一个字符

    %d 有符号十进制整数

    %e 浮点数、e-记数法

    %E 浮点数、E-记数法

    %f 浮点数、十进制记数法

    %g 根据数值不同自动选择%f或%e.

    %G 根据数值不同自动选择%f或%e.

    %i 有符号十进制数(与%d相同)

    %o 无符号八进制整数

    %p 指针

    d42d064108fe850bfa919c1579d12e56.png

    %s 字符串

    %u 无符号十进制整数

    %x 使用十六进制数字0f的无符号十六进制整数

    %X 使用十六进制数字0f的无符号十六进制整数

    %% 打印一个百分号

    //还有一个特殊的格式%*.* ,这两个星号的值分别由第二个和第三个参数的值指定 printf("%.*s \n", 8, "abcdefgggggg");

    printf("%*.*f \n", 3,3, 1.25456f);使用printf ()函数 printf()的基本形式: printf("格式控制字符串",变量列表);#includeint main()

    {

    //for int

    int i=30122121;

    long i2=309095024l;

    short i3=30;

    for i2 = 65 to 66: for i3 = 65 to 66: for i4 = 65 to 66。f[i1,i2,i3,i4] max f[i1-1,i2,i3,i4],f[i1,i2-1,i3,i4],f[i1,i2,i3-1,i4],f[i1,i2,i3,i4-1] +score[1+i1+i2*2+i3*3+i4*4]ps:这题用120*40*40*40,350*40*40*40的算法都是可以的。在高频电流一个电流周期里,t2~t3的i2是线盘磁能对电容c3的充电电流,t3~t4的i3是逆程脉冲峰压通过l1放电的电流,t4~t5的i4是l1两端电动势反向时, 因d11的存在令c3不能继续反向充电, 而经过c2、d11回流所形成的阻尼电流,q1的导通电流实际上是i1。

    printf("%d,%ld\n",i,i2);//试验不出%ld和%d之间的差别,因为long是4bytes

    printf("%hd,%hd\n\n\n",i,i3);//试验了%hd和%d之间的差别,因为short是2bytes

    //for string and char

    char ch1='d';

    unsigned char ch2=160;

    char *str="Hello everyone!";

    printf("%c,%u,%s\n\n\n",ch1,ch2,str);//unsigned char超过128的没有字符对应

    //for float and double,unsigned and signed can not be used with double and float

    6ebd0cdd8f6d1f0e5898438e560c66b5.png

    float fl=2.566545445F;//or 2.566545445f

    double dl=265.5651445;

    long double dl2=2.5654441454;

    //%g没有e格式,默认6位包括小数点前面的数,

    //%f没有e格式,默认6位仅只小数点后面包含6位

    //%e采用e格式,默认6位为转化后的小数点后面的6位

    printf("%f,%e,%g,%.7f\n",fl,dl,dl,dl);

    printf("%f,%E,%G,%f\n",fl,dl,dl,dl);//%F is wrong

    printf("%.8f,%.10e\n",fl,dl);

    printf("%.8e,%.10f\n\n\n",fl,dl);

    //for point

    int *iP=&i;

    char *iP1=new char;

    void *iP2;//dangerous!

    printf("%p,%p,%p\n\n\n",iP,iP1,iP2);

    //其他知识:负号,表示左对齐(默认是右对齐);%6.3,6表示宽度,3表示精度

    char *s="Hello world!";

    printf(":%s: \n:s: \n:%.10s: \n:%-10s: \n:%.15s: \n:%-15s: \n:.10s: \n:%-15.10s:\n\n\n",

    s,s,s,s,s,s,s,s); double ddd=563.908556444;

    printf(":%g: \n:g: \n:%.10g: \n:%-10g: \n:%.15g: \n:%-15g: \n:.10g: \n:%-15.10g:\n\n\n",

    ddd,ddd,ddd,ddd,ddd,ddd,ddd,ddd);

    //还有一个特殊的格式%*.* ,这两个星号的值分别由第二个和第三个参数的值指定 printf("%.*s \n", 8, "abcdefgggggg");

    printf("%*.*f \n", 3,3, 1.25456f); return 0;

    }

    本文来自电脑杂谈,转载请注明本文网址:

    http://www.pc-fly.com/a/ruanjian/article-107342-1.html

    展开全文
  • printf中如何输出长整型

    万次阅读 2012-04-25 19:38:02
    printf中如何输出长整型? 一直都听说gcc -Wall的检查要严格很多,今天发现果然如此。写了一个简单的程序,共15行,用gcc -Wall编译时提示有warning:int format, long int arg,找了半天发
     
     
    
    printf中如何输出 长整型
    一直都听说gcc -Wall的检查要严格很多,今天发现果然如此。写了一个简单的程序,共15行,用gcc -Wall编译时提示有warning:int format, long int arg,找了半天发现问题出在:用%d输出long型变量。查书,发现书上说的是输出long时用%l,修改之,错的更严重,直接说是无法识别的格式符....上网查阅资料,正确的形式应该是%ld。用C这么多年,居然连这个都搞不清,哎,不说啥了...

    ps...转个printf的格式资料

    1 一般格式
    printf(格式控制,输出表列)
       例如: printf("i=%d,ch=%c\n",i,ch);
    说明:
    (1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:
            ①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。
            ②普通字符,即需要原样输出的字符。
    (2)“输出表列”是需要输出的一些数据,可以是表达式
    (3)  printf函数的一般形式可以表示为
              printf(参数1,参数2,……,参数n)
             功能是将参数2~参数n按参数1给定的格式输出
    2 格式字符(9种)
    (1)d(或i)格式符。用来输出十进制整数,有以下几种用法:
         ①%d,按整型数据的实际长度输出。
         ②%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
           ③%ld(%mld 也可),输出 长整型数据。
            例如:long a=123456;
                   printf("%ld",a);
     (2)o格式符,以八进制数形式输出整数。格式:%o,%mo,%lo,%mlo都可。
       (3)x(或X)格式符,以十六进制数形式输出整数。格式:%x,%mx,%lx,%mlx都可。
        (4)u格式符,用来输出unsigned型数据,即 无符号数,以十进制数形式输出。格式:%u,%mu,%lu都可。
          参见:li4-3.c.r{}
        (5)c格式符,用来输出一个字符。格式:%c,%mc都可。
        (6)s格式符,用来输出一个字符串。格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。
       (7)f格式符,用来输出实数(包括单、双精度),以小数形式输出。格式:%f,%m.nf,%-m.nf都可。
          注意:单精度实数的有效位数一般为7位,双精度为16位。
       (8)e(或E)格式符,以指数形式输出实数。格式:%e,%m.ne,%-m.ne都可。
         (9)g(或G)格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种)。
    3 说明
    (1)除了X、E、G(用大写字母表示)外,其他格式字符必须用小写字母;
    (2)“格式控制”字符串内可以包含转义字符;
    (3)如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,如:
         printf("%f%%",1.0/3);
    (4)格式字符表参见下表
                                                表1  printf格式字符
    格式字符
    说    明
    d,i
    以带符号的十进制形式输出整数(正数不输出符号)
    o
    以八进制 无符号形式输出整数(不输出前导符0)
    x,X
    以十六进制 无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出,用X时,则以大写字母输出
    u
    无符号十进制形式输出整数
    c
    以字符形式输出,只输出一个字符
    s
    输出字符串
    f
    以小数形式输出单、双精度数,隐含输出6位小数
    e,E
    以指数形式输出实数
    g,G
    选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0
                      表2  printf的附加格式说明字符
                      
    展开全文
  • printf输出长整形__int64

    千次阅读 2011-06-06 15:32:00
    printf(“%I64d”,num); 如果要输出16进制数的话,就直接将d改成x。 __int64是visual c++特有的64位整形数据类型。
  • 有关输出对齐int main(int argc, char* argv[]){char insertTime[20] = {...printf("|%-15s|/n",insertTime); //左对齐,15位长度,不够补空格printf("|%15s|/n",insertTime); //右对齐,15位长度,不够补...
  • printf(格式控制,输出表列) 例如:printf(“i=%d,ch=%cn”,i,ch); 说明: (1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息: ①格式说明:由“%”和格式字符组成,它的作用是将...
  • 如何printf64位整型

    2015-08-21 11:12:44
    输出方法:printf("%lld ",x);同时支持cin cout llu : 输出longlong的无符号数。 llx : 输出longlong的十六进制 VC++等(PKU使用): 64位整数类型是__int64 输出方法: printf("%I64d ",x);不支持cin cout
  • printf

    2016-12-02 11:09:24
    %ld 长整型 long int %c 字符型 char %f 浮点型 float %lf 双精度 double %p 地址 %s 字符串 %u 数组 格式化输出函数printf我们要知道:1、缓冲区满一行输出。2、缓冲区中有\n或\r输出 注意:如果prinf...
  • linux下是 printf("%lld/n",a); printf("%llu/n",a);   windows下是 printf("%I64d/n",a); printf("%I64u/n",a);
  • 需要打印一个固定长度的字符 一般可以这么做: void str_print(constchar*str,unsignedintstr_len) { inti=0; for(;i<str_len;...printf("%c",str[i]); printf("\n"); } ...
  • printf 打印 指定长度 字符串

    千次阅读 2013-04-12 17:18:45
    printf 打印 指定长度 字符串  原样输出字符串:  printf("%s", str); 2. 输出指定长度的字符串, 超长时不截断, 不足时右对齐:  printf("%Ns", str); --N 为指定长度的10进制数值 3. 输出指定长度的...
  • printf打印64位的整形

    千次阅读 2018-11-16 14:20:43
    printf打印64位的整形
  • printf("有符号十进制整型数据i=1234输出:\n"); printf("%%d=%d ", i); //%d有符号十进制整数; printf("%%hd=%hd ",i); //%hd有符号十进制短整数; printf("%%ld=%ld ",i); //%ld有符号十进制整数; printf("%...
  • 如何printf64位整型!(zz)

    千次阅读 2008-03-02 21:05:00
    对于GCC:64位整数类型是long long输出方法:printf("%lld ",x);同时支持cin coutVC++等(PKU使用):64位整数类型是__int64输出方法: printf("%I64d ",x);不支持cin cout谨记谨记~~特别注意:dev c++ 的gcc有点“核突”...
  • C printf() 详解之终极无惑

    万次阅读 多人点赞 2016-08-24 20:01:53
    1.printf()简介 printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf()申明于头文件stdio.h。 函数原型: int printf ( const char ...
  • scanf和printf处理64位整型变量

    千次阅读 2013-03-24 23:08:55
    昨天做编程马拉松21日的题目时,被它的各种求模给弄的快疯掉了,总是弄不对余数,后来想起来用long long,查了半天,找到了scanf和printf处理long long的格式,记录一下: long long x; scanf("%I64d",&x); ...
  • 长整型数s奇数位的数构成一个新的长整型数 例题:给定程序中函数fun的功能是:从低位开始依次取长整形变量s中奇数位上的数构成一个新的数放在t中 例如 输入12345678 输出1357 输入123456789 输出2468 #include &...
  • printf返回值

    2018-07-02 20:41:56
    今天写汇编发现它竟然还有返回值,,,,_-下面摘自百度百科printf 函数的...说明printf函数类型为整型,其返回值是整型值。其值为printf实际控制输出的字符数。然后 今天发现eax 寄存器调用printf函数以后会改变里...
  • //floatcnv #include<stdio.h> int main(){ float n1=3.0; double n2=3.0; long n3=2000000000;... printf("%.1e %.1e %.1e %.1e\n",n1,n2,n3,n4);... /*n1 float的值作为printf的参数时会被转为d...
  • printf打印

    2014-07-15 09:32:00
    printf 打印变量(整型,浮点型,双精度型,字符型,字符串类型) 整型printf("%d",a); 打印出整形变量a 浮点型:printf("%f",a); 双精度型:printf("%lf",a); 字符型:printf("%c",a); 字符串:printf(...
  • 关于C的printf以及浮点和整型问题

    千次阅读 2012-06-18 10:11:58
    #include main() {  //printf("hello,world");//C语言中所有的变量定义语句必须放在执行语句之前  //(即变量定义要放在函数的最开始几行), ...所以如果取消注释就会出错,因为a定义在执行语句printf
  • printf的用法

    千次阅读 多人点赞 2019-03-17 16:47:53
    因为每个程序都会用到 printf() 这个函数,可见他是C语言中最重要的一个函数,输出函数的功能是将程序运行的结果输出到屏幕上,而输入函数是指通过键盘给程序输入变量赋值。可以说输入输出函数是用户和计算机交互的...
  • 整型(int、long int 、short等)下十进制、八进制、十六进制的输入输出控制符
  • C++ 长整型数据的输出

    千次阅读 2015-09-22 18:49:39
    一般来说,64位整型的定义方式有long long和__int64两种(VC还支持_int64),而输出到标准输出方式有printf(“%lld”,a),printf(“%I64d”,a),和cout 本文讨论的是五种常用的C/C++编译器对64位整型的支持,这五...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 150,752
精华内容 60,300
关键字:

printf长整形