limits.h中的"ui64"是什么

本文解释了在C/C++代码中'i64'和'ui64'的用法,它们分别代表有符号64位整型和无符号64位整型,提供了理解这些标识符的基础知识。
 limits.h中的"ui64"是什么? [问题点数:20分,结帖人:pz0513]
  • pz0513
  • (彭大将军)
  • 等 级:
  • 结帖率:
楼主发表于:2011-03-17 16:24:05
看到limits.h中有
C/C++ code
            
#define LLONG_MAX 9223372036854775807i64 /* maximum signed long long int value */ #define LLONG_MIN (-9223372036854775807i64 - 1) /* minimum signed long long int value */ #define ULLONG_MAX 0xffffffffffffffffui64 /* maximum unsigned long long int value */


上面两个有i64,下面有个ui64,是什么意思啊?

还有这些
C/C++ code
            
#define _I8_MIN (-127i8 - 1) /* minimum signed 8 bit value */ #define _I8_MAX 127i8 /* maximum signed 8 bit value */ #define _UI8_MAX 0xffui8 /* maximum unsigned 8 bit value */ #define _I16_MIN (-32767i16 - 1) /* minimum signed 16 bit value */ #define _I16_MAX 32767i16 /* maximum signed 16 bit value */ #define _UI16_MAX 0xffffui16 /* maximum unsigned 16 bit value */ #define _I32_MIN (-2147483647i32 - 1) /* minimum signed 32 bit value */ #define _I32_MAX 2147483647i32 /* maximum signed 32 bit value */ #define _UI32_MAX 0xffffffffui32 /* maximum unsigned 32 bit value */


数字尾部都有iXX或者uiXX,啥意思啊?
 
 
回复次数: 5<!-- | 浏览次数: 43-->
#1楼 得分:0回复于:2011-03-17 16:26:47
integer = i
unsigned = u
64 = 64位
 
#2楼 得分:0回复于:2011-03-17 16:30:20
正如它注释里面讲的,i指int/integer,u指unsigned(未加u指signed),XX就是有多少bit宽。
至于字母量尾部的后缀,类似1 L,0.1 F这样的LZ还知道?
后缀就是用来明确表明类型的。
 
#3楼 得分:10回复于:2011-03-17 17:15:05
C++ Integer Constants
Integer constants are constant data elements that have no fractional parts or exponents. They always begin with a digit. You can specify integer constants in decimal, octal, or hexadecimal form. They can specify signed or unsigned types and long or short types.

Syntax

integer-constant :

decimal-constant integer-suffixopt
octal-constant integer-suffixopt
hexadecimal-constant integer-suffixopt
'c-char-sequence'

decimal-constant :

nonzero-digit
decimal-constant digit

octal-constant :

0
octal-constant octal-digit

hexadecimal-constant :

0x hexadecimal-digit
0X hexadecimal-digit
hexadecimal-constant hexadecimal-digit

nonzero-digit : one of

1 2 3 4 5 6 7 8 9

octal-digit : one of

0 1 2 3 4 5 6 7

hexadecimal-digit : one of

0 1 2 3 4 5 6 7 8 9
a b c d e f
A B C D E F

integer-suffix :

unsigned-suffix long-suffixopt
long-suffix unsigned-suffixopt

unsigned-suffix : one of

u U

long-suffix : one of

l L

64-bit integer-suffix :

i64

 
  • xali用户头像
  • xali
  • (夏川)
  • 等 级:
#4楼 得分:5回复于:2011-03-17 18:10:41
上面两个有i64,下面有个ui64,是什么意思啊?
代码后面的注释已经说明:i64是有符号的64位整型,ui64是无符号的64位整型。
 
#5楼 得分:5回复于:2011-03-17 18:54:41
__int8、__int16、__int32和__int64
unsigned __int8、unsigned __int16、unsigned __int32和unsigned __int64
都是微软的VC自己定义的数据类型,因为不同编译环境中int、long和short的值会和具体字长有关,尤其是int的具体长度更是没有定义,为了方便移植,所以定义了固定长度的整型
 
org.jkiss.dbeaver.model.sql.DBSQLException: SQL 错误 [2] [08S01]: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.executeStatement(JDBCStatementImpl.java:133) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeStatement(SQLQueryJob.java:607) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.lambda$1(SQLQueryJob.java:510) at org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:190) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.executeSingleQuery(SQLQueryJob.java:517) at org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob.extractData(SQLQueryJob.java:971) at org.jkiss.dbeaver.ui.editors.sql.SQLEditor$QueryResultsContainer.readData(SQLEditor.java:4135) at org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.lambda$0(ResultSetJobDataRead.java:123) at org.jkiss.dbeaver.model.exec.DBExecUtils.tryExecuteRecover(DBExecUtils.java:190) at org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.run(ResultSetJobDataRead.java:121) at org.jkiss.dbeaver.ui.controls.resultset.ResultSetViewer$ResultSetDataPumpJob.run(ResultSetViewer.java:5150) at org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:105) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Caused by: java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask at org.apache.hive.jdbc.HiveStatement.waitForOperationToComplete(HiveStatement.java:354) at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:245) at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.execute(JDBCStatementImpl.java:330) at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.executeStatement(JDBCStatementImpl.java:131) ... 12 more
最新发布
11-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值