社区
C语言
帖子详情
unsigned char与signed char之间的转换
kalony
2004-04-15 12:22:25
各位仁兄,请问如何能将unsigned char类数据转换成signed char类数据.
...全文
555
8
打赏
收藏
unsigned char与signed char之间的转换
各位仁兄,请问如何能将unsigned char类数据转换成signed char类数据.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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);//字节数据
转换
为可打印字符串
详解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语言数据类型核心知识
2013腾讯实习生招聘笔试题目
2013腾讯实习生招聘笔试题目
C语言
70,033
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章