社区
C语言
帖子详情
unsigned char与signed char之间的转换
kalony
2004-04-15 12:22:25
各位仁兄,请问如何能将unsigned char类数据转换成signed char类数据.
...全文
546
8
打赏
收藏
unsigned char与signed char之间的转换
各位仁兄,请问如何能将unsigned char类数据转换成signed char类数据.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
julyclyde
2004-04-15
打赏
举报
回复
即使超出也可以强制转换。反正长度一样
yjh1982
2004-04-15
打赏
举报
回复
就这样赋值么
alever513
2004-04-15
打赏
举报
回复
可以被隐式转化的
unsigned char hz = '6';
signed char h = hz; //隐式转化
cngdzhang
2004-04-15
打赏
举报
回复
如果数没有超出signed char 的表示范围,可以强制转换
unsigned char c;
signed char c2=(signed char)c;
kalony
2004-04-15
打赏
举报
回复
因为要调用一个函数,传入的参数类型必须是signed char类型,而原先得到的却是unsigned char类型.
moswawa
2004-04-15
打赏
举报
回复
不知道你想要什么样的结果?
army258
2004-04-15
打赏
举报
回复
超出强制会出错的吧!
强制转换!
其实它会自动由 signed转化 unsigned
lufeiyuan
2004-04-15
打赏
举报
回复
强制转换
基于C语言
char
与
un
signed
char
的区别介绍
在C中,默认的基础数据类型均为
signed
,现在我们以
char
为例,说明(
signed
)
char
与
un
signed
char
之间
的区别。 首先在内存中,
char
与
un
signed
char
没有什么不同,都是一个字节,唯一的区别是,
char
的最高位为符号位,因此
char
能表示-127~127,
un
signed
char
没有符号位,因此能表示0~255,这个好理解,8个bit,最多256种情况,因此无论如何都能表示256个数字。 在实际使用过程种有什么区别呢?主要是符号位,但是在普通的赋值,读写文件和网络字节流都没什么区别,反正就是一个字节,不管最高位是什么,最终的读取结果都一样,只是你怎么理解
不用string.h库函数的,方便易用的字符串处理函数,减少库带来代码量
减少库的使用,解决那些需要小代码量,但苦恼于没有简易的字符串处理函数的郁闷
char
*itoa_private(int val,
char
*buf,
un
signed
radix);//整数转字符串 int my_isdigit(int ch);//判断字符是否为数字 long long StrToInt(const
char
*s,int sign);//字符串转数字 int atoi_32(const
char
*s);//将字符串str
转换
为32位整型,其正数的最值为0x7FFFFFFF,负数的最小值为0x80000000,考虑数字会溢出的情况 void LettersChange(
un
signed
char
*str,
un
signed
char
font);//大小写字母变成大小写字母
signed
int st_strlen(
un
signed
char
* str);//获取字符串长度
signed
int st_strcmp(
un
signed
char
*s,
un
signed
char
*t);//比较两个字符串大小
un
signed
char
*st_strcpy(
un
signed
char
*t,
un
signed
char
*s);//字符串拷贝
signed
int st_strncmp(
un
signed
char
*dest,
un
signed
char
*src,
un
signed
int Len);//可变长度字符串大小比较
signed
char
st_toupper(
un
signed
char
c);//小写字符转化为大写字符
un
signed
char
*st_strcat(
un
signed
char
*s,
un
signed
char
*t);//字符串连接
signed
int st_memcpy(
un
signed
char
*dest,
un
signed
char
*src,
un
signed
int Len);//可变长度内存拷贝
signed
int st_memset(
un
signed
char
*dest,
un
signed
char
byte,
un
signed
int Len);//设置长度为Len的内存块为byte
signed
int st_memcmp(
un
signed
char
* dest,
un
signed
char
* src,
un
signed
int Len);//内存段内数据比较 int gsmInvertNumbers(const
char
* pSrc,
char
* pDst, int nSrcLength);//正常顺序的字符串
转换
为两两颠倒的字符串,若长度为奇数,补'F'凑成偶数 int gsmSerializeNumbers(const
char
* pSrc,
char
* pDst, int nSrcLength);//两两颠倒的字符串
转换
为正常顺序的字符串 int gsmEncode7bit(const
char
* pSrc,
un
signed
char
* pDst, int nSrcLength);//7bit编码 int gsmDecode7bit(const
un
signed
char
* pSrc,
char
* pDst, int nSrcLength);//7bit解码 int gsmString2Bytes(const
char
* pSrc,
un
signed
char
* pDst, int nSrcLength);//可打印字符串
转换
为字节数据 int gsmBytes2String(const
un
signed
char
* pSrc,
char
* pDst, int nSrcLength);//字节数据
转换
为可打印字符串
24. 关键字之
signed
和
un
signed
.pdf
24. 关键字之
signed
和
un
signed
详解C语言中的
char
数据类型及其与int类型的
转换
C语言中的
char
变量
char
是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定
signed
/
un
signed
时都默认是
signed
。虽然
char
在标准中是
un
signed
(因为
char
类型提出的初衷是用来表示ascii码,ascii码的范围是0~127),但实际情况中究竟是
signed
还是
un
signed
取决于编译器。 可通过下面程序判断编译器的默认
char
类型: void
char
_type() {
char
c=0xFF; if(c==-1) printf(
signed
); elseif(c==255) printf(unsign
STM32—C语言数据类型核心知识
STM32—C语言数据类型核心知识
C语言
70,020
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章