奇思妙想 · 2024年 3月 26日 0

有符号和无符号数

40 次浏览

不同语言有无符号数

  • C/C++标准未规定char类型是否是有符号,也可能是unsigned.
    • GCC编译参数-fsigned-char和-funsigned-char指定char符号。
  • Java/C# char类型均为Unicode字符,都是无符号类型。
  • C# byte和sbyte与C语言signed char和unsigned char对应。
  • wchar_t必然是无符号类型。
  • 整型一般都有无符号和有符号之分,注意一个特别之处C/C++格式串%o和%x仅仅代表无符号数。

不同语言的无符号数形式

  • C/Obj/C++/C#: unsigned
    数值字面量后缀u或U: 12U, 0x12U
    如果是无符号长整型,后缀是ul或UL,不过uL或者Ul也可以。
  • 仓颉:类型前面加上U前缀
    类型:UInt8 / UInt16 / UInt32 / UInt64 / UIntNative
    数值字面量后缀:i8, i16, i32, i64, u8, u16, u32, u64
    • 例如12i16