Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 基于类型的字节识别_C - Fatal编程技术网

C 基于类型的字节识别

C 基于类型的字节识别,c,C,我目前正在观看斯坦福大学的一门名为“编程范式”的在线课程,并就教授刚刚教授的一个主题提出了一个问题 比方说,我将C中的short初始化为,short C=16649对应的位模式为,0100001000001001 如果我愚弄一个指针,让它相信它只是一个像这样的char*,*(char*)&s,我不应该得到s的高位,它将对应于01000010的位模式,或者“a”吗 试图打印上一行所指的值会给我一个',而不是65。正在寻找为什么会出现这种情况的解释 谢谢上限或下限取决于表示的结尾。@nnovich好

我目前正在观看斯坦福大学的一门名为“编程范式”的在线课程,并就教授刚刚教授的一个主题提出了一个问题

比方说,我将C中的short初始化为,
short C=16649对应的位模式为,
0100001000001001


如果我愚弄一个指针,让它相信它只是一个像这样的
char*
*(char*)&s
,我不应该得到s的高位,它将对应于
01000010
的位模式,或者“a”吗

试图打印上一行所指的值会给我一个
'
,而不是65。正在寻找为什么会出现这种情况的解释


谢谢

上限或下限取决于表示的结尾。@nnovich好的,在评论中回答简单问题是比较常见的。这可能反映出评论者认为不值得花时间写一个答案,或者这个问题对于网站来说是边缘问题,不值得正式回答,或者怀疑它已经被问过并回答过了。“如果我骗过一个指针,让它相信它只是一个像这样的
char*
*(char*)&s
,我是否应该返回s的高位,它将对应于01000010或“A”的位模式?“-->否。它是UB。@nnovich OK,您可以利用它自己编写一个完整的答案。但要确保它不仅仅是重复评论,还要提供全面、完整和解释清楚的信息。@EugeneSh。我在指针转换部分得到了很好的纠正:“当指向对象的指针转换为指向字符类型的指针时,结果指向对象的最低寻址字节。”C11§6.3.2.3 7。下一个问题是用
*
引用该指针。如果这是对
无符号字符的引用,那么就没有问题了。另一个问题是
char
。当然,这可能不是问题。IAC,最好编写兼容的代码。在调查字节时,请使用
无符号字符
uint8\u t