大家好,欢迎来到IT知识分享网。
原反补的基本概念:
== 规定: 1000 0000 = -128 (因为发生了截断)==
把数据的低权值字节数据,放在了低地址字节里面,这种存放方式,就叫做小端;(小小小)
把数据的低权值字节数据,放在了高地址字节里面,这种存放方式,就叫做大端;
知识小练:
code 1:
运行时打开内存监视,便于查看二进制存储(大小端)
int a = 1; printf("a=%d\n", *(char*)&a);
1 的二进制序列: 0x00 01 — 01 处于低权值
(01 存储在低地址中,故为小端存储)
code 2:
char a = -1; signed char b = -1; unsigned char c = -1; printf("a=%d,b=%d,c=%d", a, b, c);
注意:打印是是以 %d 形式(十进制整数形式)
结果:
a —char 类型
b—- signed char 有符号
c—- unsigned char 无符号
-1 == 1000 0001 (二进制)
code 3:
char a = -128; printf("%u\n", a);
code 4:
char a = 128; //1000 0000 printf("%d\n", a): //int [-128~127]
code 5:
int i = -20; unsigned int j = 10; printf("%d\n", i + j);
code 6:
unsigned int i; // i无符号数,[0-i] >=0 会形成死循环 for (i = 9; i >= 0; i--) {
printf("%u\n", i); }
code 7:
int main() {
char a[1000] = {
0 }; int i = 0; for (i = 0; i < 1000; i++) {
a[i] = -1 - i; } printf("%d", strlen(a)); // strlen 计算字符串长度 ,遇到'\0'就停止 return 0; }
code 8:
unsigned char i = 0; int main() {
for (i = 0; i <= 255; i++) {
printf("hello world"); } system("pause"); return 0; }
code 9:
在int main() {
unsigned char a = 200; unsigned char b = 100; unsigned char c = 0; c = a + b; printf("%d %d", a + b, c); return 0; }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/136626.html