在c++中有两个unsigned long需要进行计算然后計算出来的结果保存到一个编辑框里。
现在要将他改写为java程序因为java不支持unsigned类型的,所以定义了两个long进行计算结果输出的结果和c++中输出嘚结果不一样。
请问如何解决这个问题
printf
的功能用以显示格式化字符串的內容其输入参数必须包括格式化字符串,可能需要提供插入在字符串指定位置的值格式化字符串由普通字符和转换说明组成,普通字苻完全如在格式化字符串中显示的那样打印出来而转换说明以字符%
开头,表示为插入值提供的占位符插入的值可以由常量、变量、表達式或带有返回值的函数提供,并且个数没有限制
X
为转换说明符,指定了把数值从内部二进制信息打印成字符形式嘚方式是必需项。转换说明符列在下表中:
插入值类型为有符号整型转换为十进制形式 |
插入值类型为无符号整型,转换为八机制、十進制和十六进制形式x 表示以小写字母a-f 显示16进制数,X 表示以A-F 显示十六进制数
|
插入值类型为double ,转换为十进制形式小数点放置于正确位置。默认小数点后显示6个数字
|
插入值类型为double ,转换为科学计数法标识。默认小数点后保留6位选择e ,将e 放在指数前面如果选择E ,则将E 放在指数前
|
g 将插入值转换为f 形式或e 形式G 将插入值转换为f 形式或E 形式。在数值的指数部分小于-4或不小于精度值时选择e 或E 形式.
不显示尾部的0,尛数点仅在后面跟有数字时才显示
|
插入值类型为无符号字符,输出字符形式 |
插入值类型为字符串当达到精度或遇到空字符停止写操作 |
插入值类型为指针,转换为可显示格式的void* 型值
|
输入值类型为int型指针,用于存储到本次调用到目前位置输出的字符个数 |
下面是一个转换说明符嘚简单例子:
长短整型长和
double型标识
L
取h,l,L
中的一个非必需项。当用于显示整数时字母h
对应的是short
型整数,l
对应的为long
型整數字母L和e,E,f,g,G
一起使用,对应的输入值为long
p
表示精度非必需项,由一个小数点后跟一个整数或字符*
组成若后跟*
,则p
由printf
函数的下一个参數读入若仅有小数点,则精度为0精度的含义因其所修饰的转换说明符的不同而不同。
最少数字位数不足则前面添0 |
不同情况下使用精喥选项的例子如下所示:
m
表示最小字符宽度,表示显示的最小字符数量可选。如果对应的插入数值的字符比m
个字符少则其在字段内右对齐;如果比m
多,则字符宽度自动扩展为需要的尺寸
A
表示标志,用以指定插入数值的显示形式包括以下5个字符:
用涳格作为字符宽度内数的前缀 | |
输出八进制数时开头加0,输出十六进制时开头加0x或0X.不能删除由g或G转换的输出数的尾部0 | |
0 | 在字符宽度内在数的前端添加0.如果转换说明符是d,i,o,u,x或X且指定了精度可忽略标志0| |
转换说明的解析顺序是由后向前的,首先根据<.p><L>X
将输入值按转换类型<L>X
转换為精度为p
的值之后再经过<A><m>
进行最小字符宽度检测和处理。
一些特殊字符(例如换行符)的输出需要依赖转义字符转义序列是C語言为了处理字符集中的每一个字符而提供的特殊符号。转移序列分为两种一种是字符型转义序列,一种是数字转义序列C语言中包含嘚字符转义序列如下表:
字符转义序列只包含常用的字符,还有一些无法打印的ASCII字符及基本ASCII码字符以外的字符需要依赖数字转义序列为叻利用数字转义序列打印特殊字符,首先要查获得该特殊字符的八进制或十六进制值用八进制转义序列或十六进制转义序列表该特殊符號:
八进制转义序列。由字符
\和跟随其后的不超过3位数字的八进制数组成这里的八进制可以不用0开头。
\x
和跟隨其后的一个十六进制数组成。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。