映射到ASCII的Character的底层实现是什么?
What is the underlying implement of Character that maps to ASCII?
我不知道JAVA/c++怎么能这么快得到字符的ASCII码。
我想知道底层的映射机制。
例如,我知道'a'等于96,但我想知道当JAVA/c++看到这个字符时,它如何将'a'转换为96?
非常感谢!
我的意思是,我知道'a'实际上是计算机内存中的01100000,但是JAVA或c++如何知道'a'是01100000,而不是0100001或其他数字?它怎么能这么快就知道a的数字?
实际情况是,它不能这么快地将字符"转换"为ASCII。字符存储为 ASCII,因此不需要转换。
也就是说,计算机在内存中存储96,而不是'a'。你在屏幕上看到的"a"只是为了显示。
因此,当你的程序说:char ch = 'a';
实际上,这相当于这样写:
char ch = 96;
把char
看作是一个整数类型。
所以当你打印一个字符串时,你的计算机读取每个字符,例如:并查找它应该为角色画什么。这取决于你的字体。所以它检查96的字体条目是什么,然后复制像素,或者画一些相应的矢量图形。因此,您看到的"a"需要计算机相当长的时间来显示(它不需要很长时间,但可能仍然需要数千个时钟周期)。
在Java中试试这段代码。
public class test {
public static void main(String[] args) {
System.out.println("a".getBytes()[0]);
}
}
相关文章:
- 实现无开销push_back的最佳方法是什么
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- 私有在函数定义/实现的返回值范围内是什么意思 (c++)?
- 在 c++ 或 python 中生成一个体面的视差图以在 Raspberry Pi 上实现的最佳方法(算法或函数)是什么
- 在 C++17 中实现迭代器和const_iterator的正确方法是什么?
- 十进制到二进制的实现不能完全适用于我大学的检查器。问题或提示可能是什么
- 实现此自定义priority_queue的正确方法是什么
- 实现此"on error, throw"回调的最佳方法是什么?
- 在QGraphicsView上实现交互式样条曲线的最佳方法是什么?
- 当您知道结构将来会更改时,实现结构读写的最佳方法是什么
- std :: is_nothrow_copy_copy_constructible的实现是什么?
- 具有多态数据的容器的常见实现是什么
- RWTPtrOrderedVector的替代实现是什么
- 将一元函数应用于向量的某些元素的良好实现是什么?
- 向量类中擦除函数的正确实现是什么
- 映射到ASCII的Character的底层实现是什么?
- c++中标准的延迟/终结器实现是什么?
- 访问和更改长布尔数组的最快实现是什么?
- 单例类的确切用法和实现是什么?