`

char和unsigned char区别

 
阅读更多

------------------------------------------------------------------------------------------------------------------

 

本质上两个类型都只占一个字节 ,8比特。

 

作为字符使用的时候,都是存储字符的ASCII码。

 

作为整数使用时,两种类型的取值范围就不同了,unsigned char为0~255, char为-128~+127。

 

总的来说,系统最终存储的是二进制数 11111111, 只有在显示的时候unsigned char和char才有区别。

 

------------------------------------------------------------------------------------------------------------------

 

那为什么很多时候byte被认为是unsigned char呢?

 

1、从通常的理解byte没有什么正负符号之说

2、更重要的是如果byte赋给 int long时候系统会做一些工作,char型系统会认为做高位是符号位。

 

最高位若为0时,没有区别,如果为1时,区别可就大了。

这里边相互之间的转换还是没有搞的很明白,惭愧。

 

 

------------------------------------------------------------------------------------------------------------------

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    QString含汉字时,完美转char*和unsigned char*

    此为QString无损转char*和unsigned char* 。 当QString内容包含汉字时,转换char*等会发生失败。此接口解决了该问题。使用后char*与unsigned char*的qDebug()输出与QString输出结果相同。 注意,该函数返回unsigned ...

    基于C语言char与unsigned char的区别介绍

    在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别。 首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,...

    c代码-char和unsigned char区别

    在C语言中,`char` 和 `unsigned char` 都是用来表示字符数据类型的,但它们之间存在一些重要的差异。理解这些差异对于编写高效且安全的C代码至关重要。 首先,`char` 类型是C语言的基本数据类型之一,它用于存储...

    unsigned char二维数组转bmp图像函数

    自己写的unsigned char二维数组转8位bmp的函数。

    unsigned char数组转成string 用16进制表示

    实现将unsigned char数组转成string型,用16进制显示。

    单片机-#define XBYTE ((unsigned char volatile xdata *) 0)

    4. **`((unsigned char volatile xdata *) 0)`**:这里创建了一个指向外部数据存储空间的`unsigned char`类型的指针,并将其初始化为地址0。通过这种方式,可以利用指针间接访问外部RAM。 #### XBYTE的应用场景 1....

    CRC8bit校验

    externok void Crc1021(unsigned char *buf, unsigned char n, unsigned char *h,unsigned char *l); externok unsigned char crc8bit(unsigned char *address,unsigned char lenNumb); #endif

    C语言合并多个char *类型的字符串

    在C语言中,合并多个`char *`类型的字符串是一项常见的任务,这通常涉及到字符串操作和内存管理。在给定的场景中,`main.c`文件是测试程序,它调用了`tools.h`头文件中定义的`MultiCombine`函数,这个函数的目的是将...

    strEX.rar_memcpy_strcpy

    void memsetEX(unsigned char *dst,unsigned char val,unsigned char len); void memcpyEX(unsigned char *dst,unsigned char *src,unsigned char len); unsigned char memcmpEX(unsigned char *dst,unsigned char...

    单片机 公交车报站系统源程序

    void Disp_word0(unsigned char posx,unsigned char *p,unsigned char n); void Lcd_system(void); bit hw_yima(); void delay0(unsigned int t); void Disp_control(unsigned char zm); void Disp_number(unsigned ...

    简单实用的CRC16bit

    externok void Crc1021(unsigned char *buf, unsigned char n, unsigned char *h,unsigned char *l); externok unsigned char crc8bit(unsigned char *address,unsigned char lenNumb); #endif

    DES和3DES加密算法,C语言,适用于单片机

    unsigned char DES_Encrypt(unsigned char *plainBuffer, unsigned char *keyBuffer, unsigned char *cipherBuffer);//加密数据 unsigned char DES_Decrypt(unsigned char *cipherBuffer, unsigned char *keyBuffer...

    char*转为LPCWSTR

    unsigned short b1[] = {0x4F53, 0}; wchar_t* wszUnicode = b1; // 或者使用 L""; // 将宽字符字符串转换为多字节字符串 int iLen = WideCharToMultiByte(936, 0, (PWSTR)wszUnicode, -1, NULL, 0, NULL, ...

    计时器举一反三.pdsprj

    unsigned char count=0; unsigned char miao=0; sbit P2_7=P2^7; sbit P1_2=P1^2; sbit P1_3=P1^3; void timer_1() interrupt 3 { TH1 = ( 65536-50000 )/256; TL1 = ( 65536-50000 )%256; count++; if(count=...

    CC1101芯片433M无线传输芯片STM32单片机设计驱动源码.zip

    unsigned char Spi_Read_Packet(unsigned char *Rx_buffer,unsigned char length); void Spi_Write_Packet(unsigned char *Tx_buffer,unsigned char size) ; void Spi_Write_Burst(unsigned char addr,unsigned char...

Global site tag (gtag.js) - Google Analytics