每每遇到这些问题就要想个半天,想不明白还不舒服,今天特别把所想整理下避免以后再次进入思想漩涡!!!

计算机存储和传输都是以字节为单位
        1 bit     = 1  二进制数据
        1 byte  = 8  bit
        1 字母 = 1  byte = 8 bit
        1 汉字 = 2  byte = 16 bit
1. bit:位
    一个二进制数据0或1,是1bit;
2. byte:字节
    存储空间的基本计量单位,如:MySQL中定义 VARCHAR(45)  即是指 45个字节;
    1 byte = 8 bit
3. 一个英文字符占一个字节;
    1 字母 = 1 byte = 8 bit
4. 一个汉字占2个字节;
    1 汉字 = 2 byte = 16 bit
5. 标点符号
    A>.  汉字输入状态下,默认为全角输入方式;
    B>.  英文输入状态下,默认为半角输入方式;
    C>.  全角输入方式下,标点符号占2字节;
    D>.  半角输入方式下,标点符号占1字节;

故:汉字输入状态下的字符,占2个字节 (但不排除,自己更改了默认设置);
         英文输入状态下的字符,占1个字节 (但不排除,自己更改了默认设置);

ASCII码
  因为信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,
以一种人类可阅读的形式 将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编
制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。

BCD码
  BCD码(Binary-Coded Decimal?)亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二
进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转
换得以快捷的进行。

asc2hex
        就是字符串转化成16进制数字 如:“4321”  0x34 0x33 0x32 0x31 --> 0x43 0x21
        
hex2asc
        就是16进制数字转化成字符串 如: 0x43 0x21 --> “4321”  0x34 0x33 0x32 0x31
        
以下给出两种实现方法:

unsigned char ascii_table[16] = {'0', '1', '2', '3', '4', '5', '6', '7','8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
};'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
};void hex2asc(unsigned char dat, unsigned char **new)
{**new = ascii_table[dat >> 4];*new += 1;**new = ascii_table[dat & 0x0f];*new += 1;
}int asc2hex(unsigned char dat, unsigned char *new)
{if ((dat >= '0') && (dat <= '9'))*new = dat - '0';else if ((dat >= 'A') && (dat <= 'F'))*new = dat - 'A' + 10;else if ((dat >= 'a') && (dat <= 'f'))*new = dat - 'a' + 10;elsereturn -1;return 0;
}void hex2str(unsigned char *read, unsigned char **write, int len)
{while (len--)hex2asc(*read++, write);
}int str2hex(unsigned char *read, unsigned char *write, int len)
{unsigned char dat;while (len--) {if (asc2hex(*read++, &dat))return -1;*write = *write << 4 | dat;if (!(len & 1)) {++write;}}return 0;
}

转载于:https://www.cnblogs.com/uriel/p/4533840.html

ASCII码、HEX、字符、BCD 等等 基础知识思考相关推荐

  1. c语言 bcd码 16进制字符串 原理,ASCII码、HEX、字符、BCD 等等 基础知识思考

    每每遇到这些问题就要想个半天,想不明白还不舒服,今天特别把所想整理下避免以后再次进入思想漩涡!!! 计算机存储和传输都是以字节为单位 1 bit     = 1  二进制数据 1 byte  = 8  ...

  2. 中文字符集与字符编码的基础知识[转载]

    中文字符集与字符编码的基础知识 字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII ...

  3. java ascii码转字符_java中char对应的ASCII码的转化操作

    java中,char类型变量可以强制转化为int类型变量,int类型变量也可以强制转化成char类型的变量: char c='a'; int i=98; System.out.println((int ...

  4. 一物一码(9): 【一物一码营销涉及的微信基础知识】

    二维码应用:一物一码[合集] (1) 二维码基础,以及js encode/decode QRCode纯前端实现 (2) 一物一码之[红包那点事] (3) 一物一码之[精准营销] (4) 一物一码之[得 ...

  5. Python中实现ASCII码与字符相互转换

    场景 实现ASCII码与字符的相互转换. 实现 新建mc.py # -*- coding: UTF-8 -*- # Filename :mc.py# author by : badaoc = inpu ...

  6. 《版式设计——日本平面设计师参考手册》—第1章段落样式和字符样式的基础知识...

    本节书摘来自异步社区<版式设计--日本平面设计师参考手册>一书中的第1章段落样式和字符样式的基础知识,作者+Designing编辑部,更多章节内容可以访问云栖社区"异步社区&qu ...

  7. C# 字符转ASCII码,ASCII码转字符

    字符转ASCII码: public static int Asc(string character)   {    if (character.Length == 1)    {     System ...

  8. pyhton 将ASCII码转换为字符char(),将字符转换为ASCII码ord()

    str=char(97) #将ASCII码转换为字符,str的值为a ascii=ord('a') #将字符转换为ASCII码,ascii的值为97 num=bin(10) #将十进制转换为二进制,n ...

  9. ASCII码_字符与数字转换等问题

    判断函数 islower(char c) 小写字母 isupper(char c) 大写字母 isdigit(char c) 数字 isalpha(char c) 字母 isalnum(char c) ...

最新文章

  1. c语言字符数组不写,C语言数组
  2. python中table表结构_python中的简易表格prettytable
  3. EJB3.0异常总结--- Need to specify class name in environment or system property,
  4. 10 款最新的 jQuery 内容滑块插件
  5. 解决Android拍照保存在系统相册不显示的问题
  6. php 三个等号与两个等号,浅析JavaScript和PHP中三个等号(===)和两个等号(==)的区别...
  7. maven的一些依赖
  8. 如何手动启动消防广播_消防应急广播应如何规范设置?
  9. 小红帽linux软件,linux常用软件类表
  10. 雷军做程序员时写的博客,真心强啊。。
  11. github软件---百度网盘加速
  12. Python使用纯matplotlib画个世界杯足球
  13. “双减”后的高途分析
  14. Java常用的文档注释
  15. 物联卡停机该如何处理
  16. Linux中级实战专题篇:LVS负载均衡集群部署
  17. js二维数组的转置,二维数组的转置指的是将二维数组横向元素保存为纵向元素。
  18. 简洁消息通知单页html源码模板
  19. 小吴学汇编之第二章--寄存器(1)
  20. php手册用法,php手册究竟是什么?如何对php手册进行使用?

热门文章

  1. 康美药业财务造假给股民造成的损失,股民该怎么办?
  2. 图片外链测试-HTML
  3. 贷款杠杆为什么非去不可?危险比你想象的要恐怖
  4. python程序打包多个py文件_不使用setup.py,打包 Python 项目
  5. 五年级数学上册用计算机探索规律,人教版小学五年级数学上册《用计算器探索规律》课后反思...
  6. 漫游飞行_魔兽世界:德拉诺时光周 冲声望解锁德拉诺飞行好时机
  7. 【音频处理】离散傅里叶变换
  8. ubuntu16.04 制作gif
  9. Python的GUI框架PySide
  10. 《神经网络:回到未来》(Neural Nets Back to the Future)-ICML 2016