c language data knowlege
来源:互联网 发布:杭州数据资源管理局 编辑:程序博客网 时间:2024/05/22 20:27
1、根据char的取值范围和unsigned char的取值范围的位数,如char和unsigned char都是8位,char型最高位是符号位,1代表为负数,所以为-2^7-1~~+2^7-1 即 [-128, 127] ,而unsigned char为2^8-1=256 即0~255。如,2^7+2^6+2^5+2^4+2^3+2^2+2^1+2^0=2^8-1, 取值范围由等比数列求出。
2、从一个小数转换为一个大数,比如 short ——>int,需要做高位的扩展。目前所知,有符号位扩展,和zero扩展两钟。符号位扩展即是把高位段全部赋值为小数的最高位数,比如0xC0转换为0xFFFFFFC0,而 0x70,转换后为0x00000070. zero扩展即是把高位段都赋值为0。据我了解,对于signed类型的转换,用的是符号位扩展,而对于unsigned类型的转换,所用的是zero扩展。其目的是保留了转换之前的真值大小。计算机的数值编码都以补码表示。
3、9与-99的源码为00001001,-9,补码为最高位置1 ,其余取反也就是11110110,然后在最低位加1即可即111101114、#include <stdio.h> #include <stdlib.h>int main() { int i =129; char cha= (char)i; int b = (int)cha; printf("sign extension: %d/n",b); system("pause"); return 1; }int 129 原码为 0x ffff ff81 或低8位是: 1000 0001, 计算机中补码和原码相同(char)i 后变为 1000 0001(int)cha 后,从补码计算可得:1000 0001-1= 1000 0000 高位不变其他取反,原码为 11111 1111 即 -127
0 0
- c language data knowlege
- Get the data of today only use c language
- apache knowlege
- Hive Data Definition Language
- LOCALE DATA MARKUP LANGUAGE
- Hive Data Manipulation Language
- Hive Data Definition Language
- C language
- C LANGUAGE
- mysql(dml)(data manipulation language)
- mysql(ddl)(data defininition language)
- SQL基础 Data Difinition Language
- wifi basic knowlege
- [hadoop] basic knowlege
- some knowlege about CO
- 040921 R C language
- MAZE(C Language)
- C language standard headers
- 入门学习duilib的要点
- ActiveMQ入门实例
- Android架构师之路-UML图形思考
- Ubuntu14.04下快速开发QT应用程序
- Vmware虚拟机进入BIOS方法
- c language data knowlege
- hdu 3065 病毒侵袭持续中
- ui
- java设计模式之---工厂模式
- 南洋理工OJ——24 素数距离问题
- Python:在指定目录下查找满足条件的文件
- 自定义ViewGroup实现瀑布流效果
- iOS 使用levelDB储存本地数据
- C++面向对象方法求解约瑟夫环问题